Algoritmos e Estruturas de Dados I – Comandos de atribuição, entrada e saída Profa. Mercedes Gonzales Márquez Comandos básicos Um comando é a descrição de uma ação a ser executada em um dado momento. Descreveremos três comandos básicos no desenvolvimento de algoritmos : atribuição, entrada e saída. Atribuição: Este comando permite que se forneça um valor a uma certa variável cujo tipo deve ser compatível com esse valor. Comando de atribuição Forma geral do comando de atribuição identificador ← expressão onde: identificado é o nome da variável; ← é o símbolo de atribuição, e expressão é a representação simbólica de um valor que pode ser do tipo numérico, lógica ou literal. A avaliação dessa representação simbólica resulta no valor a ser atribuído à variável. Comando de atribuição Exemplo de atribuição: k ← 10 COR ← “VERDE” teste ← falso soma ← 50 media ← soma/k cod ← (n*n+1) > 5 sim ← k = 0 e media < 0 Comando de atribuição Exercícios de fixação 1.7.1.1. e 1.7.1.2. do livro Algoritmos Estruturados de Harry Farrer e outros. Sendo SOMA,NUM,X variáveis numéricas, NOME, COR, DIA variáveis literais, e TESTE, COD, TUDO variáveis lógicas, assinalar os comandos de atribuição considerados inválidos: (a) NOME ← 5 (b) SOMA ← NUM + 2*X (c) TESTE ← COD ou X**2 <> SOMA (d) TUDO ← SOMA (e) COR ← “PRETO” – sqrt(X) Comando de atribuição (f) X ← X+1 (g) NUM ← “*ABC*” (h) DIA ← “SEGUNDA” (i) SOMA + 2 ← X**2 – sqr(NUM) (j) X ← NOME >= COD Quais os valores armazenados em SOMA, NOME e TUDO, supondo-se que NUM, X, COR, DIA, TESTE e COD valem, respectivamente, 5; 2,5; “AZUL”; “TERÇA”, falso e verdadeiro NOME ← DIA (a) SOMA ←NUM**2/x+ DIV(X+2,5,5) (b) (c) TUDO ←não TESTE ou COD e SOMA<X Comandos de entrada e saída Sabe-se que as unidades de entrada e saída são dispositivos que possibilitam a comunicação entre o usuário e o computador. Exemplo: através de um teclado, o usuário dá entrada ao programa e aos dados na memória e o computador emite mensagens para o usuário através da tela ou impressora. Os comandos de entrada e saída são usados para determinar o momento da entrada de dados para o algoritmo e a saída dos resultados obtidos para o usuário. Comandos de entrada e saída Forma geral do comando de entrada leia (lista de identificadores) Onde lista de identificadores são os nomes das variáveis, separados por vírgula, nas quais serão armazenados os valores provenientes do meio de entrada. Exemplo : suponhamos que nota e numero são variáveis de tipo real e inteiro respectivamente, o comando leia (nota, número) indica que dois valores numéricos (real e inteiro) serão lidos de uma unidade de entrada, quando este comando for executado. Os valores serão armazenados nas posições de memória destinadas para as variáveis nota e número. Comandos de entrada e saída Forma geral do comando de saída escreva (lista de identificadores e/ou constantes) Onde lista de identificadores são os nomes das variáveis, cujos conteúdos serão mostrados ao usuário através de um meio de saída. Além dos conteúdos das variáveis, o valor de uma constante pode ser emitido diretamente. Exemplo : escreva (36, nota, número) indica que a constante 36 e os conteúdos das variáveis nota e número serão exibidos numa unidade de saída, quando este comando for executado. Exemplos - leia Foram digitadas três linhas, onde cada uma delas contém o nome e a nota de um aluno, como se segue PAULO, 100 MARIA, 75 JOSE, 80 Escrever o(s) comandos(s) de entrada que leia(m) estas linhas e armazene(m) os valores na memória principal. Assim, supondo que A,B e C são variáveis do tipo numérico e que X,Y e Z são variáveis do tipo literal, temos duas opções leia (X,A,Y,B,Z,C) ou leia (X,A) leia (Y,B) leia (Z,C) Exemplos - escreva Escrever o(s) comandos de saída que imprima(m) os conteúdos das posições de memória A,B,C,X,Y,Z do exemplo anterior. Mostramos algumas formas COMANDO SAIDA escreva (X,A,Y,B,Z,C) JOSE, 80, MARIA, 75, PAULO, 100 escreva (X,A) escreva (Y,B) escreva (Z,C) JOSE, 80 MARIA, 75 PAULO, 100 Exercício Supondo N e P variáveis de tipo literal, X e A variáveis de tipo numérico e uma linha digitada contendo os valores MMAA, 25 Interpretar a sequência seguinte de comandos e mostrar a sua saída X←0 leia (N,A) X←X+A P←N escreva (P,X) X←X+A escreva (X) A←X escreva (N,X,A) Exercícios de comandos de entrada e saída 1. Faça um algoritmo que leia o valor do salário de um funcionário, calcule e mostre seu novo salário, sabendo que o mesmo recebeu um aumento de 21,3%. 2. Faça um algoritmo que receba a altura do degrau de uma escada e a altura que o usuário deseja alcançar subindo a escada. Calcular e mostrar quantos degraus o usuário deverá subir para atingir seu objetivo, sem se preocupar com a altura do usuário. 3. Leia o valor do raio de um círculo e calcule a área deste círculo. Comandos de entrada/saída 4. A importância de R$ 780.000,00 será dividida entre três ganhadores de um concurso. Sendo que da quantia total: O primeiro ganhador receberá 46%; O segundo receberá 32%; O terceiro receberá o restante. Calcule e imprima a quantia ganha por cada um dos ganhadores. 5. Uma empresa contrata um encanador a R$ 30,00 por dia. Crie um algoritmo que solicite o número de dias trabalhados pelo encanador e imprima a quantia líquida que deverá ser paga, sabendo-se que são descontados 8% para pagamento de impostos e taxas devidas. 6. Leia os valores de dois catetos de um triângulo e calcule e mostre o valor da hipotenusa Comandos de entrada/saída 7. Faça um algoritmo que leia um número inteiro positivo e de três dígitos, calcule o número formado pelos dígitos invertidos do número lido. Exemplo: Número lido: 345 Número obtido: 543 8. Faça um algoritmo que leia o valor da hora de trabalho (em reais), o número de dias trabalhados no mês de janeiro deste ano e mostre na tela o valor a ser pago ao funcionário , adicionando 10% sobre o valor calculado. Considere que a carga de trabalho é de segunda a sextafeira, das 8 horas às 12 hrs e das 14 hrs às 18 hrs; aos sábados, das 8 hrs às 12 hrs. Considere que o funcionário teve folga em dias de feriados. Comandos de entrada/saída 9. Três amigos fizeram um bolão e jogaram na loteria. Caso eles ganhem, o prêmio deve ser repartido proporcionalmente ao valor que cada um contribui para a realização das apostas. Faça um algoritmo que leia quanto cada apostador investiu, leia o valor do prêmio e escreva quanto cada um ganharia.