29
Comandos de Entrada Algoritmos e Técnicas de Programação Prof. Kleber Rezende

Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

  • Upload
    others

  • View
    16

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

Comandos de Entrada

Algoritmos e Técnicas de

Programação

Prof. Kleber Rezende

Page 2: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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.

Page 4: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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.

Page 6: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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

Page 7: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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:

Page 8: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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

Page 9: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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

Page 10: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

Solicitando dados...

O resultado na tela do computador seria

algo parecido com a tela a seguir:

Page 14: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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?

Page 16: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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.

Page 17: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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)

Page 19: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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.

Page 21: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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

Page 25: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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.

Page 27: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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

Page 28: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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%

Page 29: Algoritmos e Técnicas de Programação · Algoritmos e Técnicas de Programação Prof. Kleber Rezende. Considerações Iniciais Da mesma maneira que necessitamos enviar informações

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