29
Comandos de Entrada Lógica de Programação Prof. Kleber Rezende

Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Embed Size (px)

Citation preview

Page 1: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Comandos de Entrada

Lógica de Programação

Prof. Kleber Rezende

Page 2: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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.

Page 3: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Considerações Iniciais

Considere, por exemplo, um sistema de locadora

Sempre que alugamos um filme, o sistema irá necessitar de algumas informações como, por exemplo: o nosso código de cliente (ou o nome) e

o nome do filme que estamos locando.

Essas informações são fornecidas ao sistema a partir de comandos de entrada de dados.

Page 4: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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.

Page 5: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Considerações Iniciais

No caso do exemplo anterior, os valores que seriam fornecidos pelo usuário são referentes ao código do cliente e ao nome do filme que o mesmo está locando.

Sendo assim, é necessário declarar variáveis que possam armazenar valores que sejam compatíveis com as informações solicitadas ao usuário.

Page 6: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Considerações Iniciais

Por exemplo, a informação do código do cliente pode ser um valor do tipo INTEIRO, então é necessário que declaremos no algoritmo uma variável desse tipo;

A informação do nome do filme pode ser uma informação do tipo CADEIA, sendo também necessário que declaremos no algoritmo uma outra variável para receber essa informação.

Algoritmo Locadora

Variavel

inteiro codigo_cliente

cadeia nome_filme

Inicio

...

FimAlgoritmo

Page 7: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Considerações Iniciais

Após declaradas as variáveis que receberão os valores fornecidos pelo usuário podemos utilizar o comando LEIA para receber esses valores.

Para isso devemos escrever LEIA seguido da variável que receberá os valores entre parênteses.

Em C, usa-se o comando:

scanf

Observe os exemplos a seguir:

Page 8: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Considerações Iniciais

Quando o algoritmo passar pela linha 6, o usuário do algoritmo (ou do sistema) deverá digitar um valor do tipo 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

Page 9: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Considerações Iniciais

Logo em seguida, na linha 7, o usuário deverá digitar um valor do tipo cadeia e, ao teclar ENTER, esse valor 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

Page 10: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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

Page 11: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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.

Page 12: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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);

}

Page 13: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Solicitando dados...

O resultado na tela do computador seria

algo parecido com a tela a seguir:

Page 14: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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.

Page 15: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Utilizando a Entrada e a Saída de

dados para construir um programa

Utilizando os comandos de entrada e de saída em um mesmo algoritmo podemos começar a resolver pequenos problemas de programação.

Como comentado em aulas anteriores, dividimos um problema em basicamente três partes:

1) Entrada, 2) Processamento e 3) Saída.

Por exemplo, suponha que precisamos de um algoritmo que calcule a média de idade entre duas pessoas, 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?

Page 16: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

1 - Quais seriam os valores de

entrada para esse problema? Analisando o problema mais detalhadamente,

percebemos que os valores das idades das duas pessoas são informações que deverão ser fornecidas pelo usuário;

Sendo assim, é necessário definirmos variáveis para armazenar esses dados;

Mas qual o tipo que uma variável que armazena a idade de uma pessoa deve ter?

Se quisermos armazenar a idade em anos, o tipo deve ser INTEIRO.

Portanto, teríamos duas variáveis do tipo inteiro, podendo ser elas: idade1 e idade2.

Page 17: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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;

}

Page 18: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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 nosso algoritmo 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)

Page 19: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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);

}

Page 20: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

2 - Qual seria o processamento

que deve ser realizado?

Para calcular a média entre dois valores precisamos somar esses dois valores (que estarão armazenados nas variáveis idade1 e idade2) e dividí-los por 2.

Ainda, é necessário que o resultado seja armazenado em uma variável do tipo REAL, já que o resultado de uma divisão pode ser fracionário.

Page 21: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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.

Page 22: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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

Page 23: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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!!!

}

Page 24: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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 comando ESCREVA, 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

Page 25: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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);

}

Page 26: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Para casa ...

Construindo os primeiros algoritmos...

1) Elabore um algoritmo que leia um número inteiro e imprima seu

sucessor e seu antecessor. Por exemplo, suponha que o usuário digite o número 7, o algoritmo deverá imprimir (escrever) na tela o seu antecessor (número 6) e o seu sucessor (o número 8).

2) Elabore um algoritmo que leia dois números inteiros e imprima a seguinte saída:

Dividendo:

Divisor:

Quociente:

Resto:

Para a resolução desse algoritmo utilize os comandos MOD(%) e DIV(/) para o cálculo do resto e do quociente da divisão.

Page 27: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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 graus centígrados e apresente-a convertida em graus Fahrenheit. A fórmula de conversão é:

F é a temperatura em Fahrenheit e C é a temperatura em centígrados.

32*5

9 CF

Page 28: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

Para casa ...

Construindo os primeiros algoritmos...

5. Para vários tributos, a base de cálculo é o salário

mínimo. Elabore um algoritmo que leia o valor do salário mínimo e o valor do salário de uma pessoa. Calcular e imprimir quantos salários mínimos essa pessoa ganha.

6. Elabore um algoritmo que leia o peso de uma pessoa em Kg (só a parte inteira), calcule e imprima:

a. O peso da pessoa em gramas

b. O novo peso da pessoa, em gramas, se a pessoa engordar 12%

Page 29: Comandos de Entrada · Algoritmo Locadora Variavel inteiro codigo_cliente cadeia nome_filme Inicio Leia(codigo_cliente) Leia(nome_filme) FimAlgoritmo . Considerações Iniciais

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