Você está na página 1de 49

I.M.P.P.

F
INSTITUTO MÉDIO POLITÉCNICO “O PENSADOR DO FUTURO”

Coordenação do curso de Informática


Docente: Mbuco Garcia Paulo Tel. +244 940 568 657 Email:
mbuco2019@gmail.com
Disciplina: Técnicas e linguagens de Programação “TLP”,
10a Classe
Iº Trimestre – Ano Lectivo 2022/2023

Manual de Apoio para as Aulas


Teóricas/Práticas de TLP
Iº Trimestre
Sumários
Capítulo I - Conceitos sobre linguagens de programação.............................................................2
Aula # 01 Noção de Linguagem...............................................................................................2
Algoritmo 4 Exemplo de Pseudocódigo...................................................................................7
Actividade 1 ( A ser realizado com a orientação prévia do professor e A contar como
avaliação).............................................................................................................................9
Aula # 2 ALGORITMOS........................................................................................................9
ATIVIDADES 2................................................................................................................12
FORMAS DE REPRESENTAÇÃO.......................................................................................12
Aula # 03 - TIPOS DE DADOS.............................................................................................17
Aula # 04 – Variáveis, Constantes e Operadores.......................................................................19
CONSTANTES E VARIÁVEIS................................................................................................19
Aula # 05 - ENTRADA E SAÍDA DE DADOS....................................................................21
Aula # 06 OPERADORES....................................................................................................22
Aula # 07 – Estruturas de Seleção..............................................................................................27
ESTRUTURAS DE SELEÇÃO.............................................................................................27
ESTRUTURA DE SELEÇÃO IF/ELSE................................................................................28
ESTRUTURA DE SELEÇÃO SWITCH/CASE....................................................................31
Aula # 08 – Estruturas de Repetição.........................................................................................33
4.1 ESTRUTURAS DE REPETIÇÃO...................................................................................33
ESTRUTURA DE REPETIÇÃO FOR...................................................................................34
Aula # 08 - ESTRUTURA DE REPETIÇÃO WHILE..........................................................36
ESTRUTURA DE REPETIÇÃO DO/WHILE.......................................................................38
Lista de Exercícios.....................................................................................................................39
Capítulo I - Conceitos sobre linguagens de programação

Conteúdo
1.1 Conceitos básicos sobre Software
1.2 Tipos de linguagens de programação
1.2.1 Linguagem de baixo nível
1.2.2 Linguagem de alto nível
1.3 Conceitos sobre compilador e interpretador

Objectivos
 Dar a conhecer aos alunos os objectivos da disciplina.
 Introduzir aos alunos as noções globais sobre softwares, os
conceitos sobre linguagens de baixo níveis e linguagens de altos
níveis.
 Ensinar aos alunos os principais conceitos sobre programas
tradutores e as ferramentas e componentes de desenvolvimento
de softwares.
Recursos.
 Manual do Aluno
 Gravuras/Fotografias
 Vídeos

Aula # 01 Noção de Linguagem


Qualquer tipo de informação que deva ser transferida, processada ou armazenada
deve estar na forma de uma linguagem.

A linguagem é imprescindível para o processo de comunicação. Duas pessoas


que se falam o fazem através de uma linguagem em comum, a linguagem natural.
Da mesma forma, duas máquinas trocam informação por uma linguagem,
que neste caso mais técnico e restrito, se chama protocolo.

Do mesmo modo, um computador armazena suas instruções em código de


máquina. Estas diferentes linguagens não podem ser traduzidas diretamente
entre sí, pois além de serem representadas de modos diferentes, também
referem-se a coisas muito distintas
Para que um ser humano possa programar, armazenar e buscar informações
num computador, é necessário que saiba instruí-lo na sua linguagem de
máquina ou numa linguagem intermediária (uma linguagem de programação)
que possa ser facilmente traduzida para o computador.

Figura 1 Algoritmo representado em forma de um fluxograma

Linguagem Natural

A linguagem natural é a maneira como expressamos nosso raciocínio e


trocamos informação. Como é a expressão da cultura de uma sociedade,
desenvolvida através das gerações e em diferentes situações, raramente
constitui um sistema de regras rígidas que possa ser implementada numa
máquina ou que possa ser transcrita logicamente. Além da linguagem falada,
fazem parte da nossa comunicação gestos e posturas, que não podem ser
diretamente adaptados para compreensão de uma máquina. Por fim, toda a
comunicação eficiente pressupõe um conhecimento prévio comum entre os
interlocutores, por exemplo a mesma língua, a mesma bagagem cultural e assim
por diante.
Ao contrário dos seres humanos, as máquinas (dentre elas os computadores)
são projetados para executar tarefas bem determinadas a partir de determinadas
instruções. Um computador não é por si só uma máquina inteligente no sentido
que não pode aprender com a própria experiência para melhorar seu
comportamente futuro1. Ao contrário, um computador é somente capaz de
realizar estritamente as tarefas que lhe forem delegadas e que façam parte do
conjunto daquelas ações que ele pode executar. Neste sentido, é necessário
compreender que tipo de instruções podem ser executadas pelos computadores
para que possamos programá-los — instruí-los com a sequência de ações
necessárias para resolver um determinado problema — de modo que
realizem a tarefa do modo desejado.

Linguagem de Máquina e Assembler

Além do fato de o computador necessitar que lhe instruam com ações bem
específicas, estas ações devem ser passadas para o computador numa
linguagem que ele possa entendê-las, chamada linguagem de máquina. Esta
linguagem é composta somente por números, representados de forma
binária, que, sob o ponto de vista do computador, representam as
operações e os operandos que serão usados no processamento do
programa. Para um ser humano, a linguagem de máquina é dificílima de se
compreender. Assim, existe uma linguagem representada por comandos mas
que reproduz as tarefas que serão executadas dentro do computador, a
linguagem de montagem (assembly). Entretando, mesmo a linguagem de
montagem é difícil de programar e os programas feitos para um determinado
processador, por conterem instruções específicas deste, não funcionarão em um
processador de outro tipo.

Com ilustração, abaixo é mostrado o início de um programa que escreve a frase


“Olá Mundo” no monitor. Na coluna da esquerda está o endereço relativo de
memória, na coluna do centro o programa escrito em linguagem de máquina e
na coluna da direita a representação em caracteres ASCII. Teoricamente, o
1 Diversos esforços vêm sendo despendidos dentro do meio científico para equipar computadores com
esta capacidade, o campo de pesquisa que cuida desse tipo de tarefa é conhecido como Inteligência
Artifical
programa poderia ser escrito diretamente em linguagem de máquina, como
mostrado abaixo, entretando a sintaxe do mesmo é muito pouco compreensível
e a probabilidade de erro para o seu desenvolvimento seria muito grande.

00000000 7F 45 4C 46 01 01 01 00 00 00 00 00 00 00 00 00 .ELF............
00000010 02 00 03 00 01 00 00 00 D0 82 04 08 34 00 00 00 ............4...
00000020 BC 0C 00 00 00 00 00 00 34 00 20 00 07 00 28 00 ........4. ...(.
00000030 24 00 21 00 06 00 00 00 34 00 00 00 34 80 04 08 ..!.....4...4...
00000040 34 80 04 08 E0 00 00 00 E0 00 00 00 05 00 00 00 4...............

Figura 2 Compilação: o programa em linguagem de programação é transformado em instruções em linguagem de máquina (que o
processador pode executar).

Linguagens de Programação

Para facilitar a tarefa de programar um computador, foram criadas várias


linguagens de programação. Estas linguagens são um maneira de tentar
escrever as tarefas que o computador vai realizar de maneira mais parecida com
a linguagem natural. Embora ainda seja muitas vezes complexo em comparação
com a linguagem natural, um programa escrito em uma linguagem de
programação é muito mais fácil de ser implementado, compreendido e
modificado.

As linguagens de programação são um meio termo entre a linguagem de


máquina e a linguagem natural. Deste modo são classificadas de acordo com o
nível entre a linguagem natural ou de máquina que ocupam. As linguagens muito
parecidas com linguagem de máquina são chamadas de linguagens de baixo
nível e suas instruções parecem-se muito com aquelas que serão executadas
pelo processador. As linguagens de alto-nível são as que guardam mais
semelhanças com a linguagem natural. Exemplo de linguagens de baixo nível é
a linguagem de montagem (assembly). Exemplos de linguagens de alto-nível
são: Pascal, C, Fortran, Java, Perl, Python, Lisp, PHP, entre outras.

Como o processador não pode executar o código numa linguagem de


programação, esta deve ser traduzida em código de máquina antes de ser
executada. Este processo é chamado de textbfcompilação (representado na
Figura 2) e é responsável por converter os comandos da lingugem de
programação nas instruções em código de máquina que o processador poderá
utilizar.

Por exemplo, o código de máquina da seção passada foi gerado pelo programa
a seguir, escrito na linguagem de programação C. Esse programa, depois de
compilado, escreve frase “Olá Mundo” no monitor. A compilação, isto é, a
tradução do programa em C para linguagem de máquina, produz algo parecido
com o que foi é mostrado na seção anterior, para o caso de um processador da
família 80386, usados em PCs.

#include <stdio.h>
int main(){ printf("Olá
Mundo\n");
}

A primeira linha (#include) inclui algumas bibliotecas de instruções que facilitarão


a programação. A linha seguinte indica que esta é a parte principal (main) do
programa; o que estiver dentro do bloco delimitado por chaves { } será
executado. Finalmente, a próxima linha imprime (printf) o argumento (Olá
Mundo) no monitor.

Um programa escrito em linguagem de máquina, como contém instruções


específicas de um processador, só poderá ser utilizado naquele processador ou
em similares. Em contrapartida, uma linguagem de programação, como contém
somente instruções abstratas do que fazer, pode ser compilado para qualquer
código de máquina. Em resumo, ao invés de escrever um programa em código
de máquina para cada família de processdores, escreve-se o mesmo código
numa linguagem de programação e está é compilada por um compilador
específico daquela arquitetura.

Pseudocódigo

O pseudocódigo é uma maneira intermediária entre a linguagem natural e uma


linguagem de programação de representar um algoritmo. Ela utiliza um conjunto
restrito de palavras-chave, em geral na língua nativa do programador, que tem
equivalentes nas linguagens de programação. Além disso, o pseudocódigo
não requer todo a rigidez sintática necessária numa linguagem de
programação, permitindo que o aprendiz se detenha na lógica do
algoritmos e não no formalismo da sua representação. Na medida em que
se obtém mais familiaridade com os algoritmos, então o pseudocódigo pode ser
traduzido para uma linguagem de programação.

Algoritmo 4 Exemplo de Pseudocódigo.

leia (x, y) {Esta linha é um


comentário}
se x > y então
escreva ( x é maior )
senão
se y > x então escreva ( y é
maior )
senão escreva ( x e y são iguais )
fim-se

Na listagem 4 é mostrado um exemplo de pseudocódigo escrito em


português para escrever o maior valor entre, x ou y. As palavras leia, se, então,
senão, senão-se, fimse e escreva são palavras-chave que representam
estruturas presentes em todas as linguagens de programação. Entretanto, no
pseudocódigo não é necessário se preocupar com detalhes de sintaxe
(como ponto-e-vírgula no final de cada expressão) ou em formatos de
entrada e saída dos dados. Deste modo, o enfoque no desenvolvimento do
algoritmo fica restrito a sua lógica em si, e não na sua sintaxe para
representação em determinada linguagem.

Por exemplo, considere o código do programa a seguir que implementa na


linguagem de programação C o algoritmo 4. Veja como o mesmo requer uma
sintaxe bem mais rígida do que o seu algoritmo correspondente Isso acontece
pois para que o compilador C possa entender o programa desenvolvido, é
necessário que sejam respeitadas algumas exigências da linguagem, como por
exemplo:

 todo programa em C inicia sua execução na função main(), que é


obrigatória;
 para que certas funções sejam acessíveis, é necessário incluir a bilbioteca
stdlib.h;
 todas as linhas que contém instruções devem terminar com ponto-e-
vírgula;
 os blocos de instruções são delimitados por chaves;
 linhas de comentários2 são iniciadas por duas barras //;
 blocos de comentários são delimitados por /* e */;

Este conjunto de regras demonstra como o compilador (nesse caso o compilador


C) requer estruturas bem rígidas para poder processar (entender) o programa.
Para facilitar o entendimento das estruturas algorítmicas que serão estudadas,
os algoritmos apresentados aqui serão escritos em pseudocódigo, sendo
fundamental que o estudante consiga entender a a correspondência entre os
mesmos e a sua representação em uma linguagem de programação.

#include <stdio.h>

int main(){
int x, y; // isto é um cometário de linha
/* isto é um comentário de bloco
*/
printf("\ndigite x:"); scanf("%i",&x);
printf("\ndigite y:"); scanf("%i",&y);

if (x>y) {
printf("x é maior\n");
} else if (x<y) { printf("y é
maior\n");
} else { printf("x e y são iguais\n");

2 Os textos escritos dentro de linhas e/ou blocos de comentários são ignoradoas pelo compilador e
servem para que o programador mantenha o código documentado
}
}

Actividade 1 ( A ser realizado com a orientação prévia do professor e A contar


como avaliação)
 Pesquisa sobre as principais liguagens de Alto-nível, destacando suas
oriegens, utilidades.
 Pesquise sobre a linguagem assembly destacando sua utilidade e
evolução.
 Pesquise sobre linguagem artificail destacando sua influência nas
actividades e relações humanas.
 Pesquise sobre a importância dos programadores e sua posição no
mercado de emprego.
 Peqsuise sobre compiladores e interpretadores.
 Instala em seu telemóvel ou computador um aplicativo de interpretação
de pseudocódico , exemplo Visual g , Portugol ...

Noções de Algoritmos e Linguagens de Programação


Conteúdos:
• Conceitos de Algoritmo
• Formas de Representação dos Algoritmos
• Conceitos de Tipos de Dados

Objetivos:
• Compreender os conceitos relacionados aos algorítmos
• Estruturar a codificação básica de um Algoritmo
• Reconhecer os elementos da estrutura de um Algoritmo
• Elaborar de forma autónoma um algorítmo de forma correta.

Recursos:
• Computador com o Interpretador instalado
• Vídeos
• Manual do Aluno
• Atividades de consolidação
Aula # 2 ALGORITMOS

O que é um algoritmo?

Um Algoritmo é...
 É uma linguagem intermediária entre a linguagem humana e as
linguagens de programação;
 É utilizado para representar a solução de um problema;
 Descrevem instruções a serem executadas pelos computadores.
Nota bem: É a especificação de uma sequência ordenada de instruções, finitas e
não-ambíguas, que deve ser seguida para a solução de um determinado problema,
garantindo a sua repetibilidade.

Algoritmos no dia a dia


Aplicamos o conceito de algoritmo diariamente sempre que estabelecemos um
planejamento mental para realizar uma determinada tarefa, considerando que
deveremos executar um conjunto de passos até atingir o objetivo desejado.

Exemplos de algoritmos no dia a dia:


▪ Receitas culinárias;

▪ Manuais de instrução;
▪ Roteiros de realização de tarefas específicas.
Um dos vários exemplos do uso de algoritmos no nosso dia a dia são as
receitas culinárias, pois estas possuem um conjunto de passos que devem ser
seguidos para obter o resultado esperado.

Exemplo de algorítmo: Receita de Brigadeiro


1. Arrumar os ingredientes:
2. Colocar todos os ingredientes em uma panela;
3. Misturar os ingredientes;
4. Cozinhar a mistura em fogo médio até começar a soltar do fundo da
panela.
5. Desligar o fogo;
6. Colocar o brigadeiro em refratário de vidro;
7. Esperar o brigadeiro esfriar;
8. Enrolar o brigadeiro em formato esférico;
9. Passar o brigadeiro enrolado no granulado;
10. Colocar o brigadeiro na forminha de papel.

Para que serve um algoritmo?

 O algoritmo é uma sequência de passos lógicos e finitos que permite


solucionar problemas;
 O objetivo de aprender a criar algoritmos é que este é a base de
conhecimentos para as linguagens de programação;
 Em geral, existem muitas maneiras de resolver o mesmo problema. Ou
seja, podem ser criados vários algoritmos diferentes para resolver o
mesmo problema;
 Assim, ao criarmos um algoritmo, indicamos uma dentre várias
possíveis sequências de passos para solucionar o problema.

Algoritmo computacional

Para que um computador possa desempenhar uma tarefa é necessário que esta
seja detalhada, passo a passo, em uma linguagem compreensível pela máquina,
por meio de um... Programa.

Nota bem: Um programa de computador é um algoritmo escrito em um formato


compreensível pelo computador.

 Na elaboração de um algoritmo devem ser especificadas ações claras e


precisas que resultem na solução do problema proposto;
 A lógica está na correta sequência de passos que deve ser seguida para
alcançar um objetivo específico;
 O grau de detalhe do algoritmo dependerá da situação em que o programador
se encontra.

Propriedades essenciais
Um Algoritmo deve ser:

Completo Todas as ações precisam ser descritas e devem ser únicas.

Sem redundância Um conjunto de instruções só pode ter uma única forma de


ser interpretada.
Determinístico Se as instruções forem executadas, o resultado esperado
será sempre atingido.
Finito As instruções precisam terminar após um número limitado
de passos.

ATIVIDADES 2
Individual (A contar como avaliação e deve ser entregue no dia seguinte)
1. O que entendes por algorítmo?
2. Qual é a sua utilidade no seu dia à dia?
3. Quais são as características de um algorítmo?
4. Qual é a relação entre um computador, um progrma e um algorítmo?
5. Faça um algorítmo para fazer deposito no banco.
6. Faça um algorítmo para desmontar o peneu de um carro.

FORMAS DE REPRESENTAÇÃO

Existem diversas formas de representação de algoritmos, mas não há uma


forma considerada a melhor;
Entre as principais diferenças está o maior ou menor nível de detalhamento
(grau de abstração).

Formas mais conhecidas de representação


Descrição narrativa
Fluxograma
Pseudocódigo (Linguagem estruturada ou
Portugol)

Cada uma das formas de representação possui vantagens e desvantagens;


Cabe ao programador escolher qual forma oferece as melhores características
de acordo com a situação/problema;
É comum a combinação das representações, principalmente quando há a
necessidade do entendimento por vários tipos de pessoas.
Descrição Narrativa

Os algoritmos são expressos diretamente em linguagem natural. Ou seja, a


sequência de passos é descrita em nossa língua nativa (português).

Exemplo: Cálculo da média de um aluno:


 Obter as suas 2 notas de provas;
 Calcular a média aritmética;
 Se a média for maior ou igual a 7, o aluno foi aprovado;
 Senão
Aspecto o aluno foi reprovado.
positivo Aspecto negativo
Não é necessário aprender novos A língua natural dá oportunidade para
conceitos, pois a língua natural já é bem várias interpretações e ambiguidades,
conhecida. dificultando a transcrição desse
algoritmo para programa.

Fluxograma

É uma representação gráfica em que formas geométricas diferentes implicam


ações (instruções, comandos) distintos;
É mais precisa que a Descrição Narrativa, porém não se preocupa com
detalhes de implementação do programa, como o tipo das variáveis utilizadas.
Elementos gráficos

O fluxograma utiliza símbolos específicos para a representação gráfica dos


algoritmos;
Os símbolos sofrem algumas variações de acordo com o autor ou ferramenta
em uso.

Aspecto positivo Exemplo: Aspecto negativo


O entendimento de elementos gráficos é Os fluxogramas devem ser entendidos e o
mais simplesdaque
- Cálculo o entendimento
média de um aluno: de algoritmo resultante não é detalhado,
textos. dificultando sua transcrição para um
programa.
Pseudocódigo

É rico em detalhes, como a definição dos tipos das variáveis usadas no


algoritmo.

Estrutura básica do pseudocódigo


Algoritmo <nome_do_algoritmo>
<declaração_de_variáveis>
Início
<corpo do algoritmo>
Fim

Algoritmo Palavra que indica o início da definição de um


algoritmo em forma de pseudocódigo.
<nome_do_algoritmo> Nome simbólico dado ao algoritmo com a
finalidade de distingui-lo dos demais.
<declaração_de_variáveis> Parte opcional onde são declaradas as variáveis
globais usadas no algoritmo.
Início e Fim Palavras que delimitam o início e o término,
respectivamente, do conjunto de instruções do
corpo do algoritmo.

Exemplo: Cálculo da média de um aluno:

Algoritmo Calculo_Media

Var Nota1, Nota2, MEDIA: real;

Início

Leia Nota1, Nota2;

MEDIA ← (Nota1 + Nota2) / 2;

Se MEDIA >= 7 então

Escreva “Aprovado”;

Senão

Escreva “Reprovado”;

Fim_se

Fim
Aspecto positivo Aspecto negativo
Representação clara sem as As regras do pseudocódigo devem ser
especificações de linguagem de aprendidas.
programação.

Aula # 03 - TIPOS DE DADOS

Instruções e Dados

As informações manipuladas pelo computador podem ser classificadas em:

Instruções Dados
Coordenam o funcionamento do São as informações a serem
computador, determinando a processadas pelo computador.
maneira como os dados devem ser
tratados.

Tipos de Dados
Os dados podem ser do tipo:
 Numérico;
 Literal;
 Lógico.

Dados Numéricos

o Os dados numéricos representáveis em um computador são divididos


em duas classes: INTEIROS e REAIS.

Dados numéricos Inteiros Dados numéricos Reais


Os números inteiros são aqueles que Os números reais são aqueles que
não possuem componentes decimais ou podem possuir componentes decimais
fracionários, podendo ser positivos ou ou fracionários, positivos ou negativos.
negativos.

Dados Literais
Os dados literais são sequência de caracteres que podem ser letras, dígitos e
símbolos especiais.
São representados nos algoritmos, pelo delimitador aspas (“) no seu início e
término.

Exemplos:

"AbCdefGHi" - literal de comprimento 9

"1.2" - literal de comprimento 3

“0” - literal de comprimento 1

*Note que, "1.2" representa um dado do tipo literal, diferindo de 1.2


que é um dado do tipo real, devido às aspas.

Dados Lógicos

Os dados lógicos são usados para representar os dois únicos valores lógicos
possíveis: Verdadeiro e Falso. o Seus pares valores podem representados por
meio de outros tipos, como: sim/ não, 1/0, true/false.

Esquema dos tipos de dados


Aula # 04 – Variáveis, Constantes e Operadores

Conteúdos:
• Conceitos de Constantes e Variáveis
• Comandos de Entrada e Saída de Dados
• Conceitos de Tipos de Operadores

Ao final deste módulo, você será capaz de:


• Inicializar Constantes e Variáveis
• Utilizar Operadores

Recursos:
• Computador com o Interpretador instalado
• Vídeos
• Manual do Aluno
• Atividades de consolidação

CONSTANTES E VARIÁVEIS

O que é uma Constante?

Em programação, uma constante armazena um valor fixo, que NÃO mudará


com o tempo de execução do programa. Ou seja, o valor será definido uma
única vez e jamais será alterado durante a execução da aplicação;
Uma constante deve ser utilizada quando uma informação NÃO tem qualquer
possibilidade de alteração, ou variação, no decorrer da execução do algoritmo
(programa).
Exemplos:

pi (π): 3,1415926

Velocidade da luz no vazio: 299 792 458 m/s


O que é uma Variável?
Agora que você sabe o que é uma Constante... O que seria uma Variável?
É uma entidade destinada a guardar uma informação; o Chama-se variável,
pois o valor contido nesta varia com o tempo, ou seja, não é um valor fixo;
O conteúdo de uma variável pode ser alterado, consultado ou apagado quantas
vezes forem necessárias no algoritmo;
Ao alterar o conteúdo de uma variável, a informação anterior é perdida.
Ou seja, a variável armazena sempre a última informação recebida; o Em
geral, uma variável possui três atributos: nome, tipo de dado e a informação
por ela guardada.

Nome Deve começar com uma letra e não deve conter nenhum
carácter especial, exceto o underline (_).
Tipo de dados Pode ser do tipo numérico, literal ou lógico.
Informação De acordo com o tipo de dado definido.
Exemplos:

VAR NOME :literal[50]


IDADE :inteiro
SALARIO :real
TEM_FILHOS :lógico
Regras para nomeação de variáveis:
 Devem ser iniciadas sempre por uma letra;
 Não devem conter caracteres especiais;
 Não devem conter espaços em branco;
 Não devem conter hífen entre os nomes (utilize underline).

Atribuição de valores
É utilizada para atribuir um valor a uma variável, ou seja, para armazenar um
determinado conteúdo em uma variável;
A operação de atribuição, geralmente, é representada, nos algoritmos, por uma
seta apontando para a esquerda.
Exemplos:

variável ← constante Ex.: idade ← 12 //Variável recebe


valor constante variável ← variável Ex.: preço ← valor
//Variável recebe valor de outra variável variável ←
expressão Ex.: A ← B + C
//Variável recebe valor de uma expressão

19
Aula # 05 - ENTRADA E SAÍDA DE DADOS

Existem basicamente duas instruções principais em algoritmos que são:


Leia e Escreva.

Leia Escreva
A instrução Leia é utilizada quando se A instrução Escreva é utilizada para
deseja obter informações do usuário por mostrar informações na tela do
meio do teclado, ou seja, é um computador, ou seja, é um Comando de
Comando de Entrada de Dados. Saída de Dados.

Lendo instruções

Usa-se a instrução Leia, quando é necessário que o usuário do algoritmo


digite algum dado;
A instrução de entrada de dados (Leia) será responsável pela leitura e
armazenamento desses dados na variável indicada.

Sintaxe:
leia (variável);

Escrevendo instruções

Usa-se a instrução Escreva quando é necessário mostrar algum dado do


algoritmo para o usuário;
A instrução de saída de dados (Escreva) será responsável pela exibição
dos dados da variável, constante ou expressão na tela do computador.

Sintaxe:
escreva (variável);

Comentários

A inserção de comentários no decorrer do algoritmo facilita a leitura deste


por outros programadores;
Os comentários também servem para auxiliar o programador a relembrar o
próprio código depois de um tempo sem utilizá-lo.
Sintaxe: //comentário
Hábitos de bons programadores!

Na escrita do algoritmo (pseudocódigo):


 Incluir comentários nas linhas mais importantes do programa;
 Utilizar nomes significativos (que ajudem a identificar o conteúdo)
para as variáveis e constantes;
 Efetuar a indentação (alinhamento) das linhas para facilitar a leitura.
Algoritmo de exemplo:
Algoritmo entrada_saida_dados
Início var nome :literal; //Cria a variável nome do tipo literal
escreva (“Digite seu Nome”); //Solicita que seja digitado o nome
leia (nome); //Lê e armazena na variável nome o valor digitado
escreva (“Bom dia”, nome); //Escreve a mensagem + nome
Fim

Aula # 06 OPERADORES

O que são Operadores?

Operadores são símbolos que representam atribuições, cálculos e ordem dos


dados;
As operações possuem uma ordem de prioridades (alguns cálculos são
processados antes de outros);
Os operadores são utilizados nas expressões matemáticas, lógicas, relacionais
e de atribuição.

Tipos de Operadores?

Quanto ao número de operandos sobre os quais atuam


Unários: quando atuam sobre um Binários: quando atuam sobre
único operando. dois operandos, que podem ser:
duas variáveis, duas constantes,
ou uma variável e uma
constante.

Exemplos:
Unário:

21
-x (o valor armazenado no operando x passa a ser negativo) x++

(incrementa +1 na variável x).

Obs.:
++ significa adicionar +1 ao valor da variável
-- significa diminuir -1 do valor da variável

Binário: z= x+y (somatória entre as variáveis x e y) z=x+7

(somatória entre uma variável e uma constante)

Quanto ao tipo de dado dos operandos e do valor resultante


de sua avaliação
 Operadores Aritméticos;
 Operadores de Atribuição;
 Operadores Lógicos;
 Operadores Relacionais.

Operadores Aritméticos

Conjunto de símbolos que representa as operações básicas da matemática


como: somar, subtrair, multiplicar, dividir e etc.
Esses operadores somente poderão ser utilizados entre variáveis com os tipos
de dados numéricos inteiros e/ou numéricos reais.

Operadores Aritméticos

Adição Divisão Negativo unário

+ / -
Subtração Restou ou módulo Incremento

- % ++
Multiplicação Positivo unário Decremento

* + --

o Obedecem às regras matemáticas comuns:


 As expressões de dentro de parênteses são sempre resolvidas antes
das expressões fora dos parênteses;
 Quando existe um parêntese dentro de outro, a solução sempre inicia do
parêntese mais interno até o mais externo (de dentro para fora);
 Quando duas ou mais expressões tiverem a mesma prioridade, a
solução é sempre iniciada da expressão mais à esquerda até a mais à direita.

Exemplo:
Algoritmo Calculo_Area_Quadrado
var lado, area :real;
Início Leia lado;

area ← (lado * lado);

Escreva “A área do quadrado é” + area;


Fim

Operadores de Atribuição

Têm como função retornar um valor atribuído de acordo com a operação


indicada;
A operação é feita entre os dois operandos, sendo atribuído o resultado ao
primeiro.

Operadores de Atribuição
Atribuição simples Atribuição com subtração Atribuição com divisão

= -= /=
Atribuição com adição Atribuição com Atribuição com módulo

+= multiplicação %=
*=

23
Exemplo:
Algoritmo Calculo_Area_Circulo
var raio, area :real;
real PI = 3.14; Início
Leia raio; area ← (pi)
* (raio)**2;
Escreva “A área do círculo é” + area;
Fim

Operadores Lógicos

Fazem comparações com o objetivo de avaliar expressões em que o resultado


pode ser verdadeiro ou falso, ou seja, implementando a lógica booleana;
O retorno desta comparação é sempre um valor do tipo booleano (lógico).

Operadores Lógicos
Conjunção Disjunção Negação
e/and/&& ou/or/|| não/not

As duas condições Pelo menos uma condição Inverte o valor do


devem ser verdadeiras deve ser verdadeira para que resultado da condição.
para que o resultado o resultado seja verdadeiro.
seja verdadeiro.

Retorno das expressões:

Exemplo:
Algoritmo Verifica_Aluno_Aprovado
var nota, frequencia :real;
Início
Leia nota, frequencia;

if nota >=7 e frequencia >= 70%


Escreva “Aprovado”;
else
Escreva “Reprovado”;
Fim

Operadores Relacionais

São utilizados para comparar valores entre variáveis e expressões do mesmo


tipo;
O retorno desta comparação é sempre um valor do tipo booleano
(verdadeiro/falso).

Operadores Relacionais

Igual Maior Maior ou Igual

== > >=
Diferente Menor Menor ou Igual

!= ou <> < <=

Exemplo:
Algoritmo Pode_Tirar_Carteira_de_Motorista
var idade :inteiro;
Início

Leia idade;
if idade >= 18
Escreva “Pode tirar carteira de motorista.";
else
Escreva “Não pode tirar carteira de motorista.";

Fim

Aula # 07 – Estruturas de Seleção


Conteúdos:
• Conceitos de Estruturas de Seleção
• Funcionamento das Estruturas de Seleção If/Else e Switch/Case
Ao final deste módulo, você será capaz de:
• Identificar a necessidade de utilizar Estruturas de Seleção

25
• Utilizar as Estruturas de Seleção If/Else e Switch/Case
Recursos:
• Computador com o Interpretador instalado
• Vídeos
• Manual do Aluno
• Atividades de consolidação
ESTRUTURAS DE SELEÇÃO

São comandos que auxiliam no direcionamento da sequência de execução de


um programa por meio da avaliação de condições lógicas;
Têm como função validar condições e comparar o resultado destas.

 Algoritmo condicional

Permite a escolha de um grupo de ações a ser executado quando


determinadas condições, representadas por expressões lógicas, são ou não
satisfeitas.

Permitem alterar o Fluxo de Execução do algoritmo, de forma a selecionar


qual parte deve ser executada; o Essa “decisão” de execução é tomada a partir
de uma condição, que pode resultar apenas dois valores: verdadeiro ou falso;
Uma condição é representada por expressões relacionais ou lógicas.

Funcionamento

Após executar as funções de validação e comparação, as estruturas de


seleção irão executar os blocos de comando, definidos de acordo com o
resultado da comparação (verdadeiro ou falso).

Tipos de Estruturas de Seleção

 If/Else (Se/Então);
 Switch/Case (Escolha/Caso)
ESTRUTURA DE SELEÇÃO IF/ELSE

Classificação

o Tipos de estruturas IF/ELSE:


 Simples; 
Compostas; 
Aninhadas.

Estruturas de Seleção Simples

Sintaxe no Algoritmo:

Se <comandos>

Então <instruções>;

FimSe

Como funciona?
 A condição é verificada a cada passagem pela estrutura IF/SE;
 Se a condição for satisfeita (verdadeira), são executadas as instruções entre
chaves (então);
 Se a condição NÃO for satisfeita (falso), as instruções entre chaves não são
executadas, sendo executado o código logo após as chaves;
 O IF/SE sempre executará o bloco de comando ou instrução única se a
condição entre parênteses retornar um resultado booleano verdadeiro. Caso
contrário, o bloco de comando ou a instrução única não serão executadas.

Exemplo:
Algoritmo

verifica_numero Início

var x, y :inteiro x ← 10

27
y ← 20

Se (x < y) Então
Escreva "X é menor que Y.";
FimSe
Fim

Estruturas de Seleção Composta


Sintaxe no Algoritmo:

Se <condição> Então
{
<instruções>;
}
Senão
{
<instruções>
}
FimSe
Como funciona?
A condição é verificada a cada passagem pela estrutura IF/SE;
Se a condição for satisfeita (verdadeira), são executadas as instruções entre
chaves do IF/SE;
Se a condição NÃO for satisfeita (falso), são executadas as instruções dentro
das chaves do ELSE/SENÃO;
As instruções do ELSE/SENÃO serão executadas somente quando o valor da
condição do IF/SE for falso.

Exemplo:
Algoritmo

verifica_numero Início

var x, y :inteiro x ← 30

y ← 20

Se (x < y) Então

Escreva "X é menor que Y.";

Senão

Escreva "X é maior que Y.";


FimSe

Fim

Estruturas de Seleção Aninhada

Sintaxe no Algoritmo:

Se <condição> Então
Se <condição> Então
<instruções>;
FimSe
Senão
<instruções>;
FimSe

É utilizada, em geral, quando é necessário realizar várias comparações com


a mesma variável;
É chamada de aninhada porque na sua representação fica uma seleção
dentro de outra seleção;
Também é conhecida como seleção “encadeada”; o Permite fazer a
escolha de apenas um entre vários comandos possíveis.

Exemplo:
Algoritmo novo_salario Início
var salario, novo_salario :real
Se (salario < 500) Então
novo_salario < -- salario 1.20;
Senão
Se (salario <= 1000) Então
novo_salario ← salario 1.10;
Senão
novo_salario ← salario 1.05;

FimSe

FimSe

Fim

29
ESTRUTURA DE SELEÇÃO SWITCH/CASE

Para que serve?

o A estrutura Switch/Case-Escolha/Caso é utilizada quando é necessário


testar a mesma variável com uma série de valores (várias vezes).

Estrutura padrão

Sintaxe no Algoritmo:
Escolha <condição>
Caso1: <expressão>
<instruções>;
Pare;
Caso2: <expressão>
<instruções>;
Pare;
Senão:
<instruções>;
Pare;
FimEscolha

Como funciona?

A variável a ser testada deve ser sempre do tipo inteiro ou literal; o É utilizado
para oferecer várias opções ao usuário, deixando que escolha um valor dentre
vários;

A principal vantagem desse comando é que ele evita uma série de testes com
o comando IF/SE;
Funciona de maneira semelhante ao IF/SE encadeado; o A condição após o
SWITCH/ESCOLHA informa o valor que será

comparado em cada CASE/CASO;


No primeiro CASE/CASO é verificado se o valor recebido como parâmetro é
igual ao seu valor;
Se o valor do parâmetro informado for o mesmo (igual) do CASE/CASO, será
executado o trecho de código dentro do respectivo CASE/CASO;
Se o valor do parâmetro informado for diferente do CASE/CASO, será testada
a condição do próximo CASE/CASO;
O comando BREAK/PARE é utilizado para forçar a saída do
SWITCH/ESCOLHA ao se entrar em um CASE/CASO; o Sem o
BREAK/PARE todos os CASE/CASO serão testados, mesmo que algum
CASE/CASO já tenha atendido a condição;
O comando DEFAULT/SENÃO é opcional e define um fluxo alternativo para
as situações não atendidas por nenhum CASE/CASO;
O trecho de código dentro do DEFAULT/SENÃO será executado apenas
quando o valor de nenhum CASE/CASO for igual ao valor do parâmetro
informado.

Exemplo:
Algoritmo informa_sexo
Início
var sexo:literal
Escolha (sexo)
Caso ("F"):
Escreva "Sexo feminino";
Pare;
Caso ("M"):
Escreva "Sexo masculino";
Pare;
FimEscolha
Fim
Aula # 08 – Estruturas de Repetição

Conteúdos:
• Conceitos de Estruturas de Repetição
• Funcionamento das Estruturas de Repetição For, While e Do/While
Ao final deste módulo, você será capaz de:
• Identificar a necessidade de utilizar Estruturas de Repetição
• Utilizar as Estruturas de Repetição For, While e Do/While
Recursos:
• Computador com o Interpretador instalado
• Vídeos

31
• Manual do Aluno
• Atividades de consolidação
4.1 ESTRUTURAS DE REPETIÇÃO

São comandos que permitem que uma sequência de instruções seja


executada várias vezes até que uma condição seja satisfeita;
Se uma instrução ou uma sequência de instruções precisa ser executada várias
vezes, deve-se utilizar uma estrutura de repetição.

Para que servem?

Servem para repetir um conjunto de instruções sem que seja necessário


escrevê-las várias vezes;
Permitem que um trecho do algoritmo seja repetido, em um número
determinado ou indeterminado de vezes, sem que o código a ser repetido tenha
que ser escrito novamente; o As estruturas de repetição também são
chamadas de Laços ou Loops.

Funcionamento

As estruturas de repetição envolvem a avaliação de uma condição (teste); o A


avaliação resulta em valores Verdadeiros ou Falsos; o Se o resultado da
condição é Falso, não é iniciada a repetição ou, caso esteja em execução, é
encerrada a repetição;
o Se o resultado da condição for Verdadeiro, é iniciada a repetição ou,
caso esteja em execução, é reiniciada a execução das instruções
dentro da Estrutura de Repetição;
o A avaliação da condição é sempre novamente realizada após a
execução da última instrução dentro da estrutura de repetição;
o A única Estrutura de Repetição que não realiza a avaliação da
condição antes de iniciar é a Do/While (Faça/Enquanto).
o Desta forma, é assegurado que todas as instruções dentro da Estrutura
de Repetição do Do/While serão executadas pelo menos uma vez.
Tipos de Estruturas de Repetição

 For (Para/Faça);  While (Enquanto/Faça);


 Do/While (Faça/Enquanto).
ESTRUTURA DE REPETIÇÃO FOR

Características

Deve ser usada quando o número exato de repetições é conhecido; o


Utiliza uma variável de controle que deve ser do tipo Inteiro ou Literal.

Estrutura padrão

Sintaxe no Algoritmo:

Para <valor> Até <condição> Faça

<instruções>

FimPara

Obs.: Ao invés de incremento pode ser feito um decremento do


valor da variável de inicialização.

Como funciona?

o For: comando que inicializa a estrutura de repetição. Sua condição é


testada antes de executar qualquer instrução dentro do laço;
o Variável de inicialização: comando de atribuição que inicia uma
variável de controle do laço. É executada apenas uma vez, no início
do laço;

33
o Condição: determina o final do laço (repetição). Normalmente é uma
expressão lógica. É verificada antes da execução do laço. Se for
Verdadeira, as instruções dentro do laço são executadas. Se for Falsa
o laço é finalizado;
o Incremento/decremento: é executado sempre no final do laço,
mudando o valor da variável de controle a cada repetição do laço.

Exemplo:
Algoritmo Imprimir_numeros_de_1_a_100

Início var

contador :inteiro;

Para contador ← 1 Até 100 Faça

Escreva (contador);

FimPara

Fim

Aula # 08 - ESTRUTURA DE REPETIÇÃO WHILE

Características

o É a estrutura de repetição mais simples; o É ideal para situações em


que não se sabe o número exato de vezes em que o bloco de
instruções deve ser repetido;
o Pode ser utilizado para substituir laços FOR.

Estrutura padrão

Sintaxe no Algoritmo:
Enquanto <condição> Faça

<instruções>

FimEnquanto

Como funciona?

o A condição é validada antes de cada repetição do laço; o Enquanto a


condição for Verdadeira, o bloco de instruções dentro do laço é
executado;
o Quando a condição se torna Falsa, o laço é finalizado.

Exemplo:
Algoritmo Imprimir_numeros_de_1_a_10
Início var

contador :inteiro;

contador← 1

Enquanto (contador < 10) Faça

Escreva contador; contador

← contador +1

FimEnquanto
Fim

35
ESTRUTURA DE REPETIÇÃO DO/WHILE

Características

o Testa a condição de validação do laço apenas no final do comando.


Desta forma, é assegurado que as instruções dentro do laço serão
executadas pelo menos uma vez;
o A diferença para a estrutura WHILE é que na DO/WHILE a condição de
validação é verificada após a execução do bloco de instruções do
laço.

Estrutura padrão
Sintaxe no Algoritmo:

Faça

<instruções>

} Enquanto <condição>;

Como funciona?

Na primeira vez que o laço for executado todas as instruções dentro deste
serão executadas, independente da condição estabelecida;
Somente após a primeira execução das instruções do laço é que a
expressão será testada;
Depois da primeira execução, as instruções dentro do laço só são executadas
novamente se a condição de validação for Verdadeira.

Exemplo:
Algoritmo Imprimir_numeros_de_1_a_10
Início var
contador :inteiro;
contador ← 1
Faz
Escreva contador;
contador ← contador +1
Enquanto (contador < 10);
Fim
Lista de Exercícios
1 Exercícios de Lógica de Programação (Consulte as aulas 01 e 02)

1) Escreva um algoritmo que armazene o valor 10 em uma variável A e o valor


20 em uma variável B. A seguir (utilizando apenas atribuições entre
variáveis) troque os seus conteúdos fazendo com que o valor que está em A
passe para B e vice-versa. Ao final, escrever os valores que ficaram
armazenados nas variáveis.

2) Analise os algoritmos abaixo e diga o que será impresso na tela ao serem


executados:

a) b)

A 10 A 30
B 20 B 20
Escrever B C A+B
B 5 Escrever C
Escrever A, B B 10
Escrever B, C
C A+B
Escrever A, B, C

c) d)

A 10 A 10
B 20 B A+1
C A A B+1
B C B A+1
A B Escrever A
Escrever A, B, C A B+1
Escrever A, B

e) f)

A 10 X 1
B 5 Y 2
C A+B Z Y–X
B 20 Escrever Z

37
A 10 X 5
Escrever A, B, C Y X+Z
Escrever X, Y, Z

Exercícios 3 ao 11 utilizar Operadores Aritméticos (Consulte as aulas 03 e 04)

3) Os pares de instruções abaixo produzem o mesmo resultado?

A (4/2)+(2/4) e A 4/2+2/4

B 4/(2+2)/4 e B 4/2+2/4

C (4+2)*2-4 e C 4+2*2-4

4) Reescreva as instruções abaixo com o mínimo de parênteses possível, mas


sem alterar o resultado:
A 6*(3+2) F (6/3)+(8/2)

B 2+(6*(3+2)) G ((3+(8/2))*4)+(3*2)

C 2+(3*6)/(2+4) H (6*(3*3)+6)-10

D 2*(8/(3+1)) I (((10*8)+3)*9)

E 3+(16-2)/(2*(9-2)) J ((-12)*(-4))+(3*(-4))

5) Escreva um algoritmo para ler um valor (do teclado) e escrever (na tela) o
seu antecessor.

6) Escreva um algoritmo para ler as dimensões de um retângulo (base e


altura), calcular e escrever a área do retângulo.

7) Faça um algoritmo que leia a idade de uma pessoa expressa em anos,


meses e dias e escreva a idade dessa pessoa expressa apenas em dias.
Considerar ano com 365 dias e mês com 30 dias.

8) Escreva um algoritmo para ler o número total de eleitores de um município,


o número de votos brancos, nulos e válidos. Calcular e escrever o
percentual que cada um representa em relação ao total de eleitores.

9) Escreva um algoritmo para ler o salário mensal atual de um funcionário e o


percentual de reajuste. Calcular e escrever o valor do novo salário.
10) O custo de um carro novo ao consumidor é a soma do custo de fábrica com
a porcentagem do distribuidor e dos impostos (aplicados ao custo de
fábrica). Supondo que o percentual do distribuidor seja de 28% e os
impostos de 45%, escrever um algoritmo para ler o custo de fábrica de um
carro, calcular e escrever o custo final ao consumidor.

11) Uma revendedora de carros usados paga a seus funcionários vendedores


um salário fixo por mês, mais uma comissão também fixa para cada carro
vendido e mais 5% do valor das vendas por ele efetuadas. Escrever um
algoritmo que leia o número de carros por ele vendidos, o valor total de
suas vendas, o salário fixo e o valor que ele recebe por carro vendido.
Calcule e escreva o salário final do vendedor.

Exercícios 12 e 13 utilizar Horizontalização (Consulte as aulas 01, 02, 03 e 04)

12) Escreva um algoritmo para ler uma temperatura em graus Fahrenheit,


calcular e escrever o valor correspondente em graus Celsius (baseado na
fórmula abaixo):

C F - 32
---------- = -----------
5 9

Observação: Para testar se a sua resposta está correta saiba que 100oC = 212F
13) Faça um algoritmo que leia três notas de um aluno, calcule e escreva a
média final deste aluno. Considerar que a média é ponderada e que o peso
das notas é 2, 3 e 5. Fórmula para o cálculo da média final é:

n1 * 2 + n2 * 3 + n3 * 5
mediafinal = -----------------------------------
10

Exercícios 14 ao 26 utilizar estrutura de Seleção e Operadores Relacionais


(Consulte as aulas 01, 02, 03 e 04-06)

14) Ler um valor e escrever a mensagem É MAIOR QUE 10! se o valor lido for
maior que 10, caso contrário escrever NÃO É MAIOR QUE 10!

15) Ler um valor e escrever se é positivo ou negativo (considere o valor zero


como positivo).

16) As maçãs custam R$ 1,30 cada se forem compradas menos de uma dúzia,
e R$ 1,00 se forem compradas pelo menos 12. Escreva um programa que

39
leia o número de maçãs compradas, calcule e escreva o custo total da
compra.

17) Ler as notas da 1a. e 2a. avaliações de um aluno. Calcular a média


aritmética simples e escrever uma mensagem que diga se o aluno foi ou
não aprovado (considerar que nota igual ou maior que 6 o aluno é
aprovado). Escrever também a média calculada.

18) Ler o ano atual e o ano de nascimento de uma pessoa. Escrever uma
mensagem que diga se ela poderá ou não votar este ano (não é necessário
considerar o mês em que a pessoa nasceu).

19) Ler dois valores (considere que não serão lidos valores iguais) e escrever o
maior deles.

20) Ler dois valores (considere que não serão lidos valores iguais) e escrevê-los em
ordem crescente.

21) Ler a hora de início e a hora de fim de um jogo de Xadrez (considere apenas
horas inteiras, sem os minutos) e calcule a duração do jogo em horas,
sabendo-se que o tempo máximo de duração do jogo é de 24 horas e que o
jogo pode iniciar em um dia e terminar no dia seguinte.

22) A jornada de trabalho semanal de um funcionário é de 40 horas. O


funcionário que trabalhar mais de 40 horas receberá hora extra, cujo cálculo
é o valor da hora regular com um acréscimo de 50%. Escreva um algoritmo
que leia o número de horas trabalhadas em um mês, o salário por hora e
escreva o salário total do funcionário, que deverá ser acrescido das horas
extras, caso tenham sido trabalhadas (considere que o mês possua 4 semanas
exatas).

23) Para o enunciado a seguir foi elaborado um algoritmo em Português


Estruturado que contém erros, identifique os erros no algoritmo apresentado
abaixo:

Enunciado: Tendo como dados de entrada o nome, a altura e o sexo (M ou F)


de uma pessoa, calcule e mostre seu peso ideal, utilizando as seguintes
fórmulas:

- para sexo masculino: peso ideal = (72.7 * altura) - 58


- para sexo feminino: peso ideal = (62.1 * altura) - 44.7

inicio ler nome ler sexo se sexo


= M então peso_ideal
(72.7 * altura) - 58
senão peso_ideal (62.1 *
altura) – 44.7
fim_se
escrever peso_ideal
fim

24) Ler o salário fixo e o valor das vendas efetuadas pelo vendedor de uma
empresa. Sabendo-se que ele recebe uma comissão de 3% sobre o total
das vendas até R$ 1.500,00 mais 5% sobre o que ultrapassar este valor,
calcular e escrever o seu salário total.

25) Faça um algoritmo para ler: número da conta do cliente, saldo, débito e
crédito. Após, calcular e escrever o saldo atual (saldo atual = saldo - débito
+ crédito). Também testar se saldo atual for maior ou igual a zero escrever
a mensagem 'Saldo Positivo', senão escrever a mensagem 'Saldo
Negativo'.

26) Faça um algoritmo para ler: quantidade atual em estoque, quantidade


máxima em estoque e quantidade mínima em estoque de um produto.
Calcular e escrever a quantidade média ((quantidade média = quantidade
máxima + quantidade mínima)/2). Se a quantidade em estoque for maior ou
igual a quantidade média escrever a mensagem 'Não efetuar compra',
senão escrever a mensagem 'Efetuar compra'.

Exercícios 27 ao 38 utilizar Seleção Aninhada ou Concatenada (Consulte as


aulas 01, 02, 03 e 04-07)

27) Ler um valor e escrever se é positivo, negativo ou zero.

28) Ler 3 valores (considere que não serão informados valores iguais) e escrever o
maior deles.

29) Ler 3 valores (considere que não serão informados valores iguais) e escrever a
soma dos 2 maiores.

30) Ler 3 valores (considere que não serão informados valores iguais) e escrevê-los
em ordem crescente.

31) Ler 3 valores (A, B e C) representando as medidas dos lados de um


triângulo e escrever se formam ou não um triângulo. OBS: para formar um
triângulo, o valor de cada lado deve ser menor que a soma dos outros 2
lados.

32) Ler o nome de 2 times e o número de gols marcados na partida (para cada
time). Escrever o nome do vencedor. Caso não haja vencedor deverá ser
impressa a palavra EMPATE.

33) Ler dois valores e imprimir uma das três mensagens a seguir:

41
‘Números iguais’, caso os números sejam iguais
‘Primeiro é maior’, caso o primeiro seja maior que o
segundo; ‘Segundo maior’, caso o segundo seja
maior que o primeiro.

34) Seja o seguinte algoritmo:


início ler
x ler
y z
(x*y)
+ 5
se z
<= 0
então
respo
sta
‘A’
senão se z
<= 100
então
resposta
‘B’
senão
resposta ‘C’
fim_se
fim_se
escrever z, resposta
fim

Faça um teste de mesa e complete o quadro a seguir para os seguintes


valores:
Variáve s
i
X Y Z Resposta
3 2
150 3
7 -1
-2 5
50 3

35) Um posto está vendendo combustíveis com a seguinte tabela de descontos:


até 20 litros, desconto de 3% por litro
Álcool
acima de 20 litros, desconto de 5% por litro
até 20 litros, desconto de 4% por litro
Gasolina
acima de 20 litros, desconto de 6% por litro
Escreva um algoritmo que leia o número de litros vendidos e o tipo de
combustível (codificado da seguinte forma: A-álcool, G-gasolina), calcule e imprima
o valor a ser pago pelo cliente sabendo-se que o preço do litro da gasolina é
R$ 3,30 e o preço do litro do álcool é R$ 2,90.
36) Escreva um algoritmo que leia as idades de 2 homens e de 2 mulheres
(considere que as idades dos homens serão sempre diferentes entre si, bem como as
das mulheres). Calcule e escreva a soma das idades do homem mais velho
com a mulher mais nova, e o produto das idades do homem mais novo com
a mulher mais velha.

37) Uma fruteira está vendendo frutas com a seguinte tabela de preços:
Até 5 Kg Acima de 5 Kg
Morango R$ 2,50 por Kg R$ 2,20 por Kg
Maçã R$ 1,80 por Kg R$ 1,50 por Kg
Se o cliente comprar mais de 8 Kg em frutas ou o valor total da compra
ultrapassar R$ 25,00, receberá ainda um desconto de 10% sobre este total.
Escreva um algoritmo para ler a quantidade (em Kg) de morangos e a
quantidade (em Kg) de maças adquiridas e escreva o valor a ser pago pelo
cliente.
38) Faça um algoritmo para ler um número que é um código de usuário. Caso
este código seja diferente de um código armazenado internamente no
algoritmo (igual a 1234) deve ser apresentada a mensagem ‘Usuário
inválido!’. Caso o Código seja correto, deve ser lido outro valor que é a
senha. Se esta senha estiver incorreta (a certa é 9999) deve ser mostrada a
mensagem ‘senha incorreta’. Caso a senha esteja correta, deve ser
mostrada a mensagem ‘Acesso permitido’.

Exercícios 39 ao 43 utilizar Operadores Lógicos (Consulte a aula 05):

39) Para A = V, B = V e C = F, qual o resultado da avaliação das seguintes


expressões:

a) (A e B) ou (A xou B)
b) (A ou B) e (A e C)
c) A ou C e B xou A e não B

40) Faça um algoritmo para ler: a descrição do produto (nome), a quantidade


adquirida e o preço unitário. Calcular e escrever o total (total = quantidade
adquirida * preço unitário), o desconto e o total a pagar (total a pagar = total
- desconto), sabendo-se que:

- Se quantidade <= 5 o desconto será de 2%

43
- Se quantidade > 5 e quantidade <=10 o desconto será de 3%
- Se quantidade > 10 o desconto será de 5%

41) Faça um algoritmo para ler as 3 notas obtidas por um aluno nas 3
verificações e a média dos exercícios que fazem parte da avaliação.
Calcular a média de aproveitamento, usando a fórmula abaixo e escrever o
conceito do aluno de acordo com a tabela de conceitos mais abaixo:

N1 + N2 * 2 + N3 * 3 + Média_dos_Exercícios
Média_de_Aproveitamento =
---------------------------------------------------------
7
A atribuição de conceitos obedece a tabela abaixo:
Média de Aproveitamento Conceito
> = 9,0 A
> = 7,5 e < 9,0 B
> = 6,0 e < 7,5 C
< 6,0 D

42) Uma empresa quer verificar se um empregado está qualificado para a


aposentadoria ou não. Para estar em condições, um dos seguintes
requisitos deve ser satisfeito:

- Ter no mínimo 65 anos de idade.


- Ter trabalhado no mínimo 30 anos.
- Ter no mínimo 60 anos e ter trabalhado no mínimo 25 anos.

Com base nas informações acima, faça um algoritmo que leia: o número do
empregado (código), o ano de seu nascimento e o ano de seu ingresso na
empresa. O programa deverá escrever a idade e o tempo de trabalho do
empregado e a mensagem 'Requerer aposentadoria' ou 'Não requerer'.
43) Seja o seguinte algoritmo:
inicio ler a, b, c se (a < b+c) e
(b <a+c) e (c <a+b) então se
(a=b) e (b=c) então mens
'Triângulo Equilátero'
senão se (a=b) ou (b=c) ou
(a=c) então mens
'Triângulo Isósceles'
senão mens
'Triângulo
Escaleno'
fim_se
fim_se
senão mens 'Não e possível formar um
triângulo'
fim
_se
esc
rev
er
men
s
fim

Faça um teste de mesa e complete o quadro a seguir para os seguintes valores


das variáveis:
Variáveis

a b C Mens

1 2 3

3 4 5

2 2 4

4 4 4

5 3 3

Exercícios 44 ao 49 - Estruturas de Repetição: Repita e Enquanto (Consulte a


aula 07):

44) Escreva um algoritmo para ler 2 valores e se o segundo valor informado for
ZERO, deve ser lido um novo valor, ou seja, para o segundo valor não pode ser
aceito o valor zero e imprimir o resultado da divisão do primeiro valor lido
pelo segundo valor lido. (utilizar a estrutura REPITA).

45) Reescreva o exercício anterior utilizando a estrutura ENQUANTO.

46) Acrescentar uma mensagem de 'VALOR INVÁLIDO' no exercício [44] caso


o segundo valor informado seja ZERO.

47) Acrescentar uma mensagem de 'VALOR INVÁLIDO' no exercício [45] caso


o segundo valor informado seja ZERO.

45
48) Escreva um algoritmo para ler as notas da 1a. e 2a. avaliações de um
aluno, calcule e imprima a média (simples) desse aluno. Só devem ser
aceitos valores válidos durante a leitura (0 a 10) para cada nota.

49) Acrescente uma mensagem 'NOVO CÁLCULO (S/N)?' ao final do exercício


[48]. Se for respondido 'S' deve retornar e executar um novo cálculo, caso
contrário deverá encerrar o algoritmo.

Parabéns! Este é o fim da lista de exercícios para a primeira avaliação (G1)!


Se você conseguiu resolver a maior parte destes exercícios, certamente está
preparado! Mas estude bastante também a parte teórica da matéria! ;-)

Exercícios 50 ao 56 utilizar Estrutura de Repetição: Para (Consulte a aula 08):

50) Escreva um algoritmo para imprimir os números de 1 (inclusive) a 10


(inclusive) em ordem crescente.

51) Escreva um algoritmo para imprimir os números de 1 (inclusive) a 10


(inclusive) em ordem decrescente.

52) Escreva um algoritmo para imprimir os 10 primeiros números inteiros


maiores que 100.

53) Ler um valor N e imprimir todos os valores inteiros entre 1 (inclusive) e N


(inclusive). Considere que o N será sempre maior que ZERO.

54) Modifique o exercício anterior para aceitar somente valores maiores que 0 para
N. Caso o valor informado (para N) não seja maior que 0, deverá ser lido
um novo valor para N.

55) Escreva um algoritmo que calcule e imprima a tabuada do 8 (1 a 10).

56) Ler um valor inteiro (aceitar somente valores entre 1 e 10) e escrever a
tabuada de 1 a 10 do valor lido.

Exercícios 57 ao 69 utilizar Contadores e Acumuladores (Consulte a aula 08):

57) Reescreva o exercício 50 utilizando a estrutura REPITA e um CONTADOR.

58) Reescreva o exercício 51 utilizando a estrutura ENQUANTO e um


CONTADOR.

59) Ler 10 valores e escrever quantos desses valores lidos são NEGATIVOS.
60) Ler 10 valores e escrever quantos desses valores lidos estão no intervalo
[10,20] (inlcuindo os valores 10 e 20 no intervalo) e quantos deles estão
fora deste intervalo.

61) Ler 10 valores, calcular e escrever a média aritmética desses valores lidos.

62) Ler o número de alunos existentes em uma turma e, após isto, ler as notas
destes alunos, calcular e escrever a média aritmética dessas notas lidas.

63) Escreva um algoritmo para ler 10 números e ao final da leitura escrever a


soma total dos 10 números lidos.

64) Escreva um algoritmo para ler 10 números. Todos os números lidos com
valor inferior a 40 devem ser somados. Escreva o valor final da soma
efetuada.

65) Ler 2 valores, calcular e escrever a soma dos inteiros existentes entre os 2
valores lidos (incluindo os valores lidos na soma). Considere que o
segundo valor lido será sempre maior que o primeiro valor lido.

66) O mesmo exercício anterior, mas agora, considere que o segundo valor
lido poderá ser maior ou menor que o primeiro valor lido, ou seja, deve-se
testá-los.

67) Faça um algoritmo que calcule e escreva a média aritmética dos números
inteiros entre 15

(inclusive) e 100 (inclusive).


68) Uma loja está levantando o valor total de todas as mercadorias em
estoque. Escreva um algoritmo que permita a entrada das seguintes
informações: a) o número total de mercadorias no estoque; b) o valor de
cada mercadoria. Ao final imprimir o valor total em estoque e a média de
valor das mercadorias.

69) O mesmo exercício anterior, mas agora não será informado o número de
mercadorias em estoque.
Então o funcionamento deverá ser da seguinte forma: ler o valor da mercadoria
e perguntar ‘MAIS MERCADORIAS (S/N)?’. Ao final, imprimir o valor total em
estoque e a média de valor das mercadorias em estoque.

Exercícios 70 ao 73 utilizar Maior e Menor (Consulte a aula 05):

70) Faça um programa que leia 100 valores e no final, escreva o maior e o
menor valor lido.

47
71) Faça um algoritmo para ler uma quantidade e a seguir ler esta quantidade
de números. Depois de ler todos os números o algoritmo deve apresentar
na tela o maior dos números lidos e a média dos números lidos.

72) Faça um algoritmo para ler o código e o preço de 15 produtos, calcular e


escrever:
- o maior preço lido
- a média aritmética dos preços dos produtos

73) A prefeitura de uma cidade deseja fazer uma pesquisa entre seus
habitantes. Faça um algoritmos para coletar dados sobre o salário e
número de filhos de cada habitante e após as leituras, escrever: a) Média
de salário da população
b) Média do número de filhos
c) Maior salário dos habitantes
d) Percentual de pessoas com salário menor que R$ 150,00
Obs.: O final da leituras dos dados se dará com a entrada de um “salário
negativo”.

Exercícios 74 ao 76 utilizar Repetição Aninhada (Consulte tudo):

74) Escreva um algoritmo que imprima a tabuada (de 1 a 10) para os números
de 1 a 10.

75) Escreva um algoritmo que imprima as seguintes seqüências de números:


(1, 1 2 3 4 5 6 7 8 9 10) (2, 1 2 3 4 5 6 7 8 9 10) (3, 1 2 3 4 5 6 7 8 9 10) (4,
1 2 3 4 5 6 7 8 9 10) e assim sucessivamente, até que o primeiro número
(antes da vírgula), também chegue a 10.

76) Imagine que exista um comando chamado "posiciona (x,y)" em alguma


linguagem de programação. Onde o X representaria a coluna que algo
deve ser impresso na tela, e Y a linha que algo deve ser impresso na tela.
Desta forma, o algoritmo abaixo:
início
posiciona
(10,2)
escrever
‘Olá’ fim
Escreveria a palavra ‘Olá’ na segunda linha da tela, a partir da 10 coluna.
Baseado nesta situação, escreva um algoritmo, utilizando este comando
'posiciona' citado, que desenhe na tela um retângulo de 60 colunas (a partir da
coluna 1 da tela) e 10 linhas (a partir da linha 1 da tela), sendo que a borda
deste retângulo será formada pelo caractere ‘+’. Lembre que somente a
primeira e última linha deverão ter todas as colunas preenchidas com o
caractere ‘+’. As demais linhas (entre 2 e 9) só terão as colunas 1 e 60
preenchidas. A aparência deste retângulo deve ser parecida com a figura
abaixo:

49

Você também pode gostar