algoritmos e técnicas de programação · algoritmos e técnicas de programação prof. kleber...
TRANSCRIPT
Comandos de Entrada
Algoritmos e Técnicas de
Programação
Prof. Kleber Rezende
Considerações Iniciais
Da mesma maneira que necessitamos
enviar informações de dentro do
algoritmo para a tela do computador
também necessitamos receber informa-
ções de fora do algoritmo.
Considerações Iniciais
Considere, por exemplo, um sistema de locadora
Sempre que alugamos um filme, o sistema iránecessitar de algumas informações como, porexemplo: o nosso código de cliente (ou o nome) e
o nome do filme que estamos locando.
Essas informações são fornecidas ao sistemaa partir de comandos de entrada de dados.
Considerações Iniciais
Para realizarmos a entrada de dados
utilizaremos o comando LEIA.
Ao utilizar o comando LEIA o
programador deve saber de antemão
qual a variável que irá armazenar o valor
que será fornecido pelo usuário.
Considerações Iniciais
No caso do exemplo anterior, os valoresque seriam fornecidos pelo usuário sãoreferentes ao código do cliente e aonome do filme que o mesmo estálocando.
Sendo assim, é necessário declararvariáveis que possam armazenar valoresque sejam compatíveis com asinformações solicitadas ao usuário.
Considerações Iniciais
Por exemplo, a informação do código do cliente pode ser umvalor do tipo INTEIRO, então é necessário que declaremos noalgoritmo uma variável desse tipo;
A informação do nome do filme pode ser uma informação do tipoCADEIA, sendo também necessário que declaremos noalgoritmo uma outra variável para receber essa informação.
Algoritmo Locadora
Variavel
inteiro codigo_cliente
cadeia nome_filme
Inicio
...
FimAlgoritmo
Considerações Iniciais
Após declaradas as variáveis que receberãoos valores fornecidos pelo usuário podemosutilizar o comando LEIA para receber essesvalores.
Para isso devemos escrever LEIA seguido davariável que receberá os valores entreparênteses.
Em C, usa-se o comando:
scanf
Observe os exemplos a seguir:
Considerações Iniciais
Quando o algoritmo passar pela linha 6, o usuário doalgoritmo (ou do sistema) deverá digitar um valor dotipo Inteiro e, ao teclar ENTER, esse valor seráarmazenado na variável codigo_cliente.
Linha 1 ....
Linha 2 ....
Linha 3 ....
Linha 4 ....
Linha 5 ....
Linha 6 ....
Linha 7 ....
Linha 8 ....
Algoritmo Locadora
Variavel
inteiro codigo_cliente
cadeia nome_filme
Inicio
Leia(codigo_cliente)
Leia(nome_filme)
FimAlgoritmo
Considerações Iniciais
Logo em seguida, na linha 7, o usuário deverá digitarum valor do tipo cadeia e, ao teclar ENTER, essevalor será armazenado na variável nome_filme.
Linha 1 ....
Linha 2 ....
Linha 3 ....
Linha 4 ....
Linha 5 ....
Linha 6 ....
Linha 7 ....
Linha 8 ....
Algoritmo Locadora
Variavel
inteiro codigo_cliente
cadeia nome_filme
Inicio
Leia(codigo_cliente)
Leia(nome_filme)
FimAlgoritmo
Solicitando dados...
É possível avisarmos o usuário sobre qual tipo de informação o algoritmo está precisando.
Para isso, utilizamos o comando de saída de dados ESCREVA que pode imprimir na tela o que o usuário deve fazer. Por exemplo:
Algoritmo Locadora
Variavel
inteiro codigo_cliente
cadeia nome_filme
Inicio
Escreva(“digite código do cliente e tecle <enter>”)
Leia(codigo_cliente)
Escreva(“digite o nome do filme e tecle <enter>”)
Leia(nome_filme)
FimAlgoritmo
Solicitando dados...
Supondo que o usuário tenha o código 2030 e esteja alugando o filme de nome ‘A Ultima Ceia’, o algoritmo funcionaria da seguinte maneira:
Ao passar pela linha 6 será escrito na tela do computador a frase: digite o código do cliente e tecle <enter>.
Ao passar para a linha 7 o algoritmo ficará esperando pelo valor que o usuário deve digitar, que para esse exemplo deverá ser 2030.
Após digitar esse valor o comando Leia(codigo_cliente) irá armazenar o valor 2030 na variável codigo_cliente.
O algoritmo irá para a linha 8 e irá escrever na tela do computador a frase: digite o nome do filme e tecle <enter>.
Ao passar para a linha 9 o algoritmo ficará esperando pelo valor que o usuário deve digitar, que para esse exemplo deverá ser A Ultima Ceia.
Após digitar esse valor o comando Leia(nome_fita) irá armazenar o valor ‘A Ultima Ceia’ na variável nome_filme.
Solicitando dados...
Em C teríamos:
main()
{
int codigo_cliente;
char nome_filme[41];
printf("digite o nome do filme e tecle <enter>: ");
scanf ("%s", nome_filme);
printf("digite código do cliente e tecle <enter>: ");
scanf ("%d", &codigo_cliente);
}
Solicitando dados...
O resultado na tela do computador seria
algo parecido com a tela a seguir:
Exercícios
Desenvolva algoritmos para fazer a
leitura:
1. Do nome, da idade e do sexo de uma
pessoa.
2. Das 3 notas de um aluno.
3. Do nome, fabricante e do ano de um
carro.
Utilizando a Entrada e a Saída de
dados para construir um programa
Utilizando os comandos de entrada e de saída emum mesmo algoritmo podemos começar a resolverpequenos problemas de programação.
Como comentado em aulas anteriores, dividimos umproblema em basicamente três partes:
1) Entrada, 2) Processamento e 3) Saída.
Por exemplo, suponha que precisamos de umalgoritmo que calcule a média de idade entre duaspessoas, podemos realizar as seguintes perguntas:
1)Quais seriam os valores de entrada para esse problema?
2)Qual seria o processamento que deve ser realizado?
3)Qual o valor de saída que deve ser mostrado para o usuário?
1 - Quais seriam os valores de
entrada para esse problema? Analisando o problema mais detalhadamente,
percebemos que os valores das idades das duaspessoas são informações que deverão serfornecidas pelo usuário;
Sendo assim, é necessário definirmos variáveispara armazenar esses dados;
Mas qual o tipo que uma variável que armazena aidade de uma pessoa deve ter?
Se quisermos armazenar a idade em anos, o tipodeve ser INTEIRO.
Portanto, teríamos duas variáveis do tipo inteiro,podendo ser elas: idade1 e idade2.
1 - Quais seriam os valores de
entrada para esse problema?
Desta forma, teríamos duas variáveis
do tipo inteiro, podendo ser elas:
idade1 e idade2.
Algoritmo media_idade
Variavel
inteiro idade1, idade2
Inicio
main()
{
int idade1, idade2;
}
1 - Quais seriam os valores de
entrada para esse problema? Essas variáveis receberão os seus valores
por meio do comando LEIA.
Para contemplar essa etapa o nossoalgoritmo ficaria mais ou menos assim:
Algoritmo media_idade
Variavel
inteiro idade1, idade2
Inicio
Escreva(‘Digite a primeira idade’)
Leia(idade1)
Escreva(‘Digite a segunda idade’)
Leia(idade2)
1 - Quais seriam os valores de
entrada para esse problema?
Em C....
main()
{
int idade1, idade2;
printf("Digite a primeira idade: ");
scanf ("%d", &idade1);
printf("Digite a segunda idade: ");
scanf ("%d", &idade2);
}
2 - Qual seria o processamento
que deve ser realizado?
Para calcular a média entre doisvalores precisamos somar esses doisvalores (que estarão armazenados nasvariáveis idade1 e idade2) e dividí-lospor 2.
Ainda, é necessário que o resultadoseja armazenado em uma variável dotipo REAL, já que o resultado de umadivisão pode ser fracionário.
2 - Qual seria o processamento
que deve ser realizado?
Continuando com o nosso algoritmo,
teremos que declarar uma variável
media do tipo REAL (ou float/double,
em C);
E inserir a linha de código onde a
media irá receber o resultado da
operação.
2 - Qual seria o processamento
que deve ser realizado?
Observe as alterações no algoritmo:
Algoritmo media_idade
Variavel
inteiro idade1, idade2
real media
Inicio
Escreva(„Digite a primeira idade‟)
Leia(idade1)
Escreva(„Digite a segunda idade‟)
Leia(idade2)
media ← (idade1 + idade2)/2
2 - Qual seria o processamento
que deve ser realizado?
Observe as alterações no código C:
main()
{
int idade1, idade2;
float media;
printf (“Digite a primeira idade: ”);
scanf (“%d”, &idade1);
printf (“Digite a segunda idade: ”);
scanf (“%d”, &idade2);
media = (idade1 + idade2) / 2.0; //Atenção ao 2.0!!!
}
3 - Qual o valor de saída que deve
ser mostrado para o usuário?
O valor de saída deve ser a média que foi calculada;
Para mostrá-la na tela utilizaremos o comandoESCREVA, da seguinte maneira:
Algoritmo media_idade
Variavel
inteiro idade1, idade2
real media
Inicio
Escreva(„Digite a primeira idade‟)
Leia(idade1)
Escreva(„Digite a segunda idade‟)
Leia(idade2)
media ← (idade1 + idade2)/2
Escreva(‘A media das idades é igual a ‘, media)
FimAlgoritmo
3 - Qual o valor de saída que deve
ser mostrado para o usuário?
Em C ....
main()
{
int idade1, idade2;
float media;
printf (“Digite a primeira idade: ”);
scanf (“%d”, &idade1);
printf (“Digite a segunda idade: ”);
scanf (“%d”, &idade2);
media = (idade1 + idade2) / 2.0; //Atenção ao 2.0!!!
printf (“A media das idades é igual a %f“, media);
}
Para casa ...
Construindo os primeiros algoritmos...
1) Elabore um algoritmo que leia um número inteiro e imprima seusucessor e seu antecessor. Por exemplo, suponha que o usuáriodigite o número 7, o algoritmo deverá imprimir (escrever) na tela oseu antecessor (número 6) e o seu sucessor (o número 8).
2) Elabore um algoritmo que leia dois números inteiros e imprima aseguinte saída:
Dividendo:
Divisor:
Quociente:
Resto:
Para a resolução desse algoritmo utilize os comandos MOD(%) eDIV(/) para o cálculo do resto e do quociente da divisão.
Para casa ...
Construindo os primeiros algoritmos...
3. Elabore um algoritmo que leia três números reais, num1,num2 e num3 e imprima o valor de y, sabendo-se que:
21*213
21 numnum
numnum
numnumy
4. Elabore um algoritmo que leia uma temperatura em grauscentígrados e apresente-a convertida em graus Fahrenheit. Afórmula de conversão é:
F é a temperatura em Fahrenheit e C é a temperatura emcentígrados.
32*5
9 CF
Para casa ...
Construindo os primeiros algoritmos...
5. Para vários tributos, a base de cálculo é o saláriomínimo. Elabore um algoritmo que leia o valor dosalário mínimo e o valor do salário de uma pessoa.Calcular e imprimir quantos salários mínimos essapessoa ganha.
6. Elabore um algoritmo que leia o peso de umapessoa em Kg (só a parte inteira), calcule eimprima:
a. O peso da pessoa em gramas
b. O novo peso da pessoa, em gramas, se a pessoa engordar 12%
Para casa ...
Construindo os primeiros algoritmos...
7. Faça um algoritmo que leia um valor inteiro positivo e menor que 1000, armazene-o em uma variável inteira e determine a soma dos dígitos que formam o valor. Exemplo: o valor 453 tem soma dos dígitos igual a 12 (4 + 5 + 3).
8. Faça um algoritmo que leia dois números inteiros positivos com 5 dígitos cada e gere um terceiro número inteiro com 10 dígitos, sendo que estes sejam os dígitos dos dois primeiros intercalados.
Exemplo :
Número_1 = 12345
Número_2 = 67890
Número_3 = 1627384950