Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Programação Entrada e saída, tipos de dados, variáveis Universidade Federal da Grande Dourados Faculdade de Ciências Exatas e de Tecnologias Curso de Bacharelado em Sistemas de Informação Profª Janne Oeiras Lachi 1 Plano de aula � O objetivo da aula é abordar a manipulação de dados pelo computador � Veremos: � Entrada, processamento e saída � Variáveis � Tipos de dados na Linguagem C � Entrada e saída de dados na Linguagem C 2 Fases de construção de um algoritmo � Entrada: são os dados de entrada do algoritmo. As informações necessárias para solucionar o problema. � Processamento: são os procedimentos utilizados para chegar ao resultado final, tais como cálculos, conversões, operações, etc. � Saída: são os dados já processados que, geralmente, serão apresentados aos usuários. 3 Fases de construção de um algoritmo 4 Figura 3: Fases para a construção de um algoritmo (Siebra e da Silva, 2009) Fases de construção de um algoritmo � Problema: Receba duas notas, calcule e mostre a média ponderada dessas notas, considerando peso 2 para a primeira nota e peso 3 para a segunda nota. � Entrada: duas notas (N1 e N2) � Processamento: calcular a média ponderada (MP) (N1 * 2) + (N2 * 3) 5 � Saída: mostrar a média ponderada (MP) 5 MP = Fases de construção de um algoritmo 6 N1 e N2 (N1 * 2) + (N2 * 3) 5 MP MP= Exemplo 1 � Problema: Receba o peso de uma pessoa em quilos, calcule e mostre esse peso em gramas. � Entrada: peso (P) � Processamento: calcular o peso em gramas (PG) PG = P * 1000 � Saída: mostrar o peso em gramas (PG) 7 Exemplo 2 � Problema: Um funcionário recebe todo mês um salário fixo mais 4% de comissão sobre as suas vendas. Faça um algoritmo que receba o salário fixo de um funcionário e o valor de suas vendas, calcule e mostre a comissão e o salário final do funcionário. � Entrada: salário fixo (S) e valor de suas vendas (V) � Processamento: calcular a comissão (C) e o salário final do funcionário (SF) C = V * 0.04 SF = S + C � Saída: mostrar a comissão (C) e o salário final do funcionário(SF) 8 Exercícios � Para cada problema a seguir, organize dentro do corpo mínimo de um programa escrito na Linguagem C a entrada, o processamento a ser feito e a saída a ser apresentada. � Exemplo: 9 Problema: Receba o peso de uma pessoa em quilos, calcule e mostre esse peso em gramas. Entrada: peso (P) Processamento: calcular o peso em gramas (PG) PG = P * 1000 Saída: mostrar o peso em gramas (PG) int main () { P PG = P * 1000 PG return 0; } entrada saída processamento Observação 10 int main () { P PG = P * 1000 PG return 0; } Atenção: não esqueça de fazer a indentação do programa. Exercícios � Receba dois números, calcule e mostre a divisão do primeiro número pelo segundo. � Receba o preço de um produto, aplique um desconto de 10% nesse preço e mostre o novo preço. � Um funcionário recebe todo mês um salário fixo mais 4% de comissão sobre as suas vendas. Faça um algoritmo que receba o salário fixo de um funcionário e o valor de suas vendas, calcule e mostre a comissão e o salário final do funcionário. � Faça um algoritmo que receba o peso de uma pessoa, calcule e mostre: a) o novo peso que a pessoa terá se engordar 15% sobre o peso digitado; b) o novo peso que a pessoa terá se emagrecer 20% sobre o peso digitado. 11 Obs.: fazer a lista 0 em casa e trazer pronta para a aula em laboratório Variáveis � Variável é tudo aquilo que é sujeito a variações, que é incerto, instável ou inconstante (pode mudar ao longo de um processo) � Imagine a memória de um computador como um grande arquivo com várias gavetas, e em cada gaveta é possível guardar um único valor por vez. � Como em um arquivo, as gavetas devem estar identificadas com uma etiqueta contendo um nome. � Cada gaveta representa uma variável. 12 Exemplo: variáveis 13 � Receba o peso de uma pessoa em quilos, calcule e mostre esse peso em gramas. � Geralmente as entradas e saídas do algoritmo vão precisar de variáveis. � Neste exercício, P representa o peso a ser lido e pode variar para cada usuário. Assim, P será uma variável. � PG é o peso em gramas que vai ser mostrado na saída e também varia de acordo com o valor de P. Então PG também é uma variável. Nomes de variáveis em C � Existem regras de definição e uso de variáveis em C: � Os nomes de identificação de uma variável podem utilizar um ou mais caracteres. � O primeiro caractere deve ser alfabético (letra) ou o caractere _(underline). Preferencialmente inicie sempre com letra. � Letras não podem ter acento, ser usado o ç , ou conter símbolos especiais. Ex.: salário, preço, preferência, opção, R# � No caso de nomes compostos, pode ser usado o caractere _ para uni-los. Exemplo: data_de_nascimento � Não usar espaço em nomes compostos. Ex.: data de nascimento (errado!) � Os demais caracteres podem ser letras, dígitos ou o _. Ex.: telefone1, telefone2, nome_completo 14 Nomes de variáveis em C � C é case sensitive, isto é, maiúsculas e minúsculas são diferenciadas. Ex.: a variável IDADE é diferente da variável Idade e diferente de idade � A diferenciação do nome de variáveis depende do compilador (ISOC90=31 e ISOC99=63). � Normalmente, nomes de variáveis não são muito longos. Use no máximo 30 caracteres. 15 Nomes de variáveis em C � Jamais usar palavras reservadas para definir uma variável. Ex.: main, return, int, float, char, typedef. 16 Categoria Palavras-chave Tipos de dados char, int, float, double, void Modificadores de tipo long, short, signed, unsigned Modificadores de acesso const, volatile Classes de armazenamento auto, extern, static, register Tipos definidos pelo usuário struct, enum, union, typedef Comandos condicionais if, else, switch, case, default Comandos de laços while, for, do Comandos de desvio break, goto, return, continue Operador sizeof Exercício � O nome de uma variável é criado por um programador devendo seguir algumas regras, são listas de nomes válidos, EXCETO: a) Nota1, Nota2, Nota3 b) Aluno, aluno, alunos c) tres, treze, 3_tres d) Tipo_camisa, T_tenis, tamanho e) Media, aprovado, reprovado 17 Exercícios � Considere os problemas abaixo e para cada um deles identifique quais serão as variáveis usadas. • Receba dois números, calcule e mostre a divisão do primeiro número pelo segundo. • Receba o preço de um produto, aplique um desconto de 10% nesse preço e mostre o novo preço. • Um funcionário recebe todo mês um salário fixo mais 4% de comissão sobre as suas vendas. Faça um algoritmo que receba o salário fixo de um funcionário e o valor de suas vendas, calcule e mostre a comissão e o salário final do funcionário. • Faça um algoritmo que receba o peso de uma pessoa, calcule e mostre: a) o novo peso que a pessoa terá se engordar 15% sobre o peso digitado; b) o novo peso que a pessoa terá se emagrecer 20% sobre o peso digitado. 18 Tipos de dados � Considere o problema: • Receba o preço de um produto, aplique um desconto de 10% nesse preço e mostre o novo preço. � Você deve ter identificado como variáveis do problema o preco e o novo_preco � O preço de um produto é um valor numérico do tipo real (ex.: R$ 1,99) � Todas as variáveis com as quais vamos trabalhar terão um tipo definido 19 Tipos de dados � Por enquanto, vamos utilizar quatro tipos em nossos programas: � Inteiro: representados por números inteiros � Real: representados por números reais � Caracteres: representados por valores alfabéticos ou alfanuméricos os quais não podemser utilizados em operações de cálculo numérico � Lógicos: representados por valores do tipo falso ou verdadeiro 20 Tipos de dados inteiros em C � Na Linguagem C é usado o comando int � Sintaxe: int <lista_var> ; � <lista_var>pode ser formada por uma única variável ou uma lista de variáveis separadas por vírgula. Ex.: � <variavel> � <variavel>, <variavel> � Exemplo: � int idade, RG, CPF; 21 Tipos de dados reais � Na Linguagem C é usado o comando float � Sintaxe: float <lista_var>; � <lista_var>pode ser formada por uma única variável ou uma lista de variáveis separadas por vírgula. Ex.: � <variavel> � <variavel>, <variavel> � Exemplo: � float SALARIO; � Observação: os valores atribuídos a este tipo, se possuírem casa decimal, devem ser representados com “.” � Certo: 3.14 87.456 � Errado: 3,14 87,456 22 Tipo de dado caractere � Usamos o comando char � Sintaxe: char <lista_var> ; � <lista_var>pode ser formada por uma única variável ou uma lista de variáveis separadas por vírgula. Ex.: � <variavel> [tamanho] � <variavel>[tamanho], <variavel> [tamanho] 23 Caractere x Cadeia � Caractere: é um dígito numérico, letra do alfabeto, código de controle ou símbolo especial � Exemplos: � “ ” � “7” � “-” � “\n” � Cadeia: é uma seqüência de caracteres � Exemplos: � “Programação” � “Rua Alfa, 52 – Apto. 1”, “Fone: (0xx99) 5544-3322”, � “-90”, “45.989” 24 Caractere: exemplo em C 25 � Escreva um algoritmo que leia do usuário uma letra e depois mostre a letra em maiúsculo. � Qual a entrada? 1 letra � Qual a saída? A mesma letra em maiúsculo � Note que neste caso tem que definir uma variável do tipo caractere de tamanho 1 � Exemplo: char letra; Cadeias de caracteres em C � Na Linguagem C não existe um tipo para armazenar cadeias de caracteres (strings) � Nesse caso, usamos o comando char e definimos o tamanho para a variável � Exemplo: � char nome[81], endereco[101] ; � A variável nome é capaz de armazenar 81 caracteres e a variável endereço 101 caracteres (foi especificado cada tamanho entre [ ]) � Some 1 unidade a mais do desejado porque a última posição do string deve ser definida com o valor ‘\0’ que indicará o final da string 26 Exemplo: cadeias de caracteres em C 27 programa CALC_APROVACAO var RESULTADO: caractere NI, N2, N3, N4: real SOMA, MEDIA: real início . . . fim #include <stdio.h> int main () { char RESULTADO[10]; float N1,N2,N3,N4; float SOMA, MEDIA; . . . return 0; } A variável RESULTADO poderá conter o valor “Aprovado” ou “Reprovado”. No máximo 9 caracteres, assim definimos com tamanho 10. Tipos de dados lógicos � São lógicos os dados com valores que sugerem uma única opção entre duas possibilidades existentes, representadas pelos valores: � Falso ou Verdadeiro � 0 ou 1 � Outras denominações: booleano � Sua representação será dada por uma das formas: � .Falso. e .Verdadeiro. � .F. e .V. � .Sim. e .Não. � .S. e .N. 28 Tipo de dado lógico � Usamos o comando bool � Sintaxe: bool <lista_var> ; � <lista_var>pode ser formada por uma única variável ou uma lista de variáveis separadas por vírgula. Ex.: � <variavel> � <variavel>, <variavel> � Exemplo: � bool A, B; 29 Tipo de dado lógico � Devemos incluir o módulo <stdbool.h> no início do arquivo � Usar o comando bool para declarar as variáveis lógicas 30 #include <stdbool.h> int main() { bool x, y; x = true; y = false; return 0; } Declaração de variáveis em PE � Antes de usar uma variável, nós precisamos fazer a sua declaração. � Para isso, usamos a palavra reservada VAR seguida da lista de variáveis que vamos usar e seus respectivos tipos. 31 var <variável 1>: <tipo> <variável 2>: <tipo> Exemplo: declaração de variáveis 32 programa PESO_GRAMAS var P: real PG: real início escreva “Informe o peso em quilos:” leia P PG� P * 1000 escreva “O peso em gramas e:” escreva PG fim � Receba o peso de uma pessoa em quilos, calcule e mostre esse peso em gramas. Podemos economizar uma linha e declarar as duas variáveis separas por vírgula como: P, PG: real Declaração de variáveis � A declaração de uma variável deve especificar um tipo e uma lista de nomes de variáveis seguida do ; � Sintaxe: <tipo> <lista_var> ; � <lista_var>pode ser formada por uma única variável ou uma lista de variáveis separadas por vírgula. Ex.: � <variavel> � <variavel>, <variavel> � Exemplo: 33 int num1; int num2; ou int num1,num2; Não esqueça do ; ao final da declaração da variável!!! Observe que em Português estruturado o tipo vem depois do nome da variável. Exemplo: declaração de variáveis 34 programa PESO_GRAMAS var P: real PG: real início escreva “Informe o peso em quilos:” leia P PG� P * 1000 escreva “O peso em gramas e:” escreva PG fim � Receba o peso de uma pessoa em quilos, calcule e mostre esse peso em gramas. int main() { float P; float PG; escreva “Informe o peso em quilos:” leia P PG = P * 1000; escreva “O peso em gramas e:” escreva PG return 0; } Declaração de variáveis � Toda variável em C deve ser declarada no início do bloco de uma função, logo após a abertura da chave e antes de qualquer outra instrução 35 int main () { int num1, num2; num1 = 44; num2 = num1 + 20; return 0; } int main () { int num1; num1 = 44; int num2; num2 = num1 + 20; return 0; } Funciona, mas não fazer assim. Declaração de variáveis � Toda variável em C deve ser declarada antes de ser usada 36 int main () { int num1, num2; num1 = 44; num2 = num1 + 20; return 0; } int main () { num1 = 44; int num1, num2; num2 = num1 + 20; return 0; } Aqui vai dar erro!!! Declaração de variáveis: observações � Declare todas as variáveis em um mesmo local, dando a eles nomes significativos para facilitar a leitura do seu código � Uma seção de declarações de variáveis encoraja o planejamento do programa antes de começar a escrevê-lo. Isto é, planejar as informações que devem ser dadas ao programa e quais as que o programa deverá nos fornecer. � Suas variáveis devem ser usadas tais como foram declaradas para evitar erros do compilador. � Exemplo 37 int b0b0; bobo = 5; Os zeros em b0b0 foram trocados pela letra o em bobo Exercícios � Considere os problemas abaixo e para cada um deles DECLARE as variáveis usadas. Não esqueça de definir o tipo de cada uma delas. • Receba dois números, calcule e mostre a divisão do primeiro número pelo segundo. • Receba o preço de um produto, aplique um desconto de 10% nesse preço e mostre o novo preço. • Um funcionário recebe todo mês um salário fixo mais 4% de comissão sobre as suas vendas. Faça um algoritmo que receba o salário fixo de um funcionário e o valor de suas vendas, calcule e mostre a comissão e o salário final do funcionário. • Faça um algoritmo que receba o peso de uma pessoa, calcule e mostre: a) o novo peso que a pessoa terá se engordar 15% sobre o peso digitado; b) o novo peso que a pessoa terá se emagrecer 20% sobre o peso digitado. 38 Biblioteca padrão de C � Parte da funcionalidade de C está contida em funções de biblioteca que residem fora da linguagem � A biblioteca padrão é dividida em grupos de funções que têm alguma afinidade entre si � Exemplos grupos de funções para: � Entrada e saída � Gerenciamento de memória � Operações matemáticas � Cada grupo de funções é denominado módulo Módulos � Possuem dois arquivos associados: � Um arquivo objeto que contém as implementações dasfunções do módulo previamente compiladas � Um arquivo-fonte, denominado cabeçalho, que contém definições parciais legíveis das funções implementadas no arquivo objeto (são arquivos com a extensão “.h”) � Para usar uma função de um módulo de biblioteca no seu programa, você deve incluir o arquivo de cabeçalho do módulo por meio de uma diretiva #include com o formato: #include <nome-do-arquivo> ou #include “nome-do-arquivo” Faça o teste #include "stdio.h" int main() { printf("Hello World!\n"); return 0; } � Troque <> por “ ” e dê novamente O módulo stdio � Responsável pelas operações básicas de entrada e saída em C � stdio vem de standard input/output, isto é, entrada e saída padrão � Para usar este módulo, no começo do seu programa você deve incluir a diretiva #include <stdio.h> � Essa linha será substituída pelo conteúdo do arquivo stdio.h � Esse arquivo de cabeçalho (.h) contém apenas alusões para as funções que estão realmente em outro arquivo (.o) � Para o seu programa ser executado, é necessário ainda usar um editor de ligações (linker) que tem a função de ligar o seu código objeto ao código objeto do módulo Saída para a tela do computador � Usamos a função printf ( ) que pertence ao módulo stdio � Associada à saída padrão do Sistema Operacional (normalmente o vídeo) � Equivale ao comando escreva do Português estruturado programa PESO_GRAMAS var P: real PG: real início escreva “Informe o peso em quilos:” leia P PG� P * 1000 escreva “O peso em gramas e:” escreva PG fim #include <stdio.h> int main() { float P; float PG; printf(“Informe o peso em quilos:”); leia P PG = P * 1000; printf(“O peso em gramas e:”); printf(“%f”, PG); return 0; } printf(): códigos especiais � Pode usar códigos especiais para escrever caracteres que não podem ser inseridos diretamente em nossos programas por meio do teclado � Exemplo: � printf(“Primeiro programa\n”); � O \n é um código especial que informa a printf() que o restante da impressão deve ser feita em uma nova linha. Faz a função da tecla ENTER 44 Exemplo: código especial #include <stdio.h> int main() { float P; float PG; printf(“UFGD\n”); printf(“Sistemas de Informação\n”); printf(“Informe o peso em quilos:”); . . . return 0; } Com os “\n” Sem os “\n” Códigos especiais: exemplos 46 Códigos Significado \n Nova linha \t Tabulação \b Retrocesso (usado para impressora) \f Salto de página de formulário \a Beep – toque do auto-falante \r CR – retorno do cursor para a primeira linha\\ barra invertida \0 Zero \’ Aspas simples \” Aspas duplas \? Interrogação Comando de saída: printf() � A função printf() pode ter um ou mais argumentos. � Se houver mais de 1 argumento, eles devem ser separados por vírgula. � Exemplo com 1 argumento: 47 programa PESO_GRAMAS var P: real PG: real início escreva “Informe o peso em quilos:” ... fim #include <stdio.h> int main() { float P; float PG; printf(“Informe o peso em quilos:”); . . . return 0; } Comando de saída: printf() � Exemplo com dois argumentos: � O primeiro argumento é chamado expressão de controle e contém, além de caracteres a serem exibidos na tela, um código de formatação que indica o formato que os argumentos restantes devem ser impressos. � %f solicita a printf() que o segundo argumento seja impresso em formato de ponto flutuante 48 ... printf(“Informe o peso em quilos:”); leia P PG = P * 1000; printf(“O peso em gramas e: %f ”, PG); ... Códigos de formatação 49 Códigos Significado %c Caractere simples %d Inteiro decimal com sinal %i Inteiro decimal com sinal %s String de caracteres %f Ponto flutuante em decimal %o Inteiro octal %% Imprime um caractere % %p Ponteiro (endereço) %u Inteiro decimal sem sinal %x Inteiro hexadecimal %ld Inteiro decimal longo %lf Ponto flutuante longo (double) %Lf Double longo Erro: esquecimento do código de formatação � O aluno esquece de colocar o código de formatação � Supondo que o usuário disse que o peso vale 60 � No primeiro caso, vai aparecer a mensagem � “O peso em gramas e: 60000” � No segundo caso, vai aparecer a mensagem � “O peso em gramas e:” 50 ... printf(“Informe o peso em quilos:”); leia P PG = P * 1000; printf(“O peso em gramas e: %f ”, PG); ... ... printf(“Informe o peso em quilos:”); leia P PG = P * 1000; printf(“O peso em gramas e:”, PG); ... errado Comando de saída: printf() � Exemplo com três argumentos � Suponha que o usuário informou o valor 60 51 O peso 60 em gramas é 60000 ... printf(“Informe o peso em quilos:”); leia P PG = P * 1000; printf(“O peso %f em gramas e: %f ”, P, PG); ... Comando de saída: printf() � Exemplo com quatro argumentos: 52 #include <stdio.h> #include <stdlib.h> int main () { printf(“A letra %c pronuncia-se %s%c%c”, ‘J’, “Jota”, ‘.’, ‘\n’); system(“PAUSE”); return 0; } A letra J pronuncia-se Jota. Comando de entrada em Português estruturado � Sintaxe 53 leia <lista-de-identificadores> � Receba o peso de uma pessoa em quilos, calcule e mostre esse peso em gramas. programa PESO_GRAMAS var P: real PG: real início escreva “Informe o peso em quilos:” leia P PG� P * 1000 escreva “O peso em gramas e:” escreva PG fim Comando de entrada: scanf() � A função scanf() faz parte do módulo <stdio.h> � Permite ler dados formatados da entrada padrão (teclado) � Sintaxe � scanf (“expressão de controle”, <lista-de-argumentos>); 54 Comando de entrada: exemplo 55 � A expressão de controle pode conter códigos de formatação precedidos pelo sinal % � A lista de argumentos deve ser constituída pelos endereços das variáveis, isto é, cada nome de cada variável deve ser precedido pelo símbolo &, que indica referência ou endereço da variável. É através dessa referência ou endereço que o valor da mesma será atualizado após a leitura do dado correspondente. programa PESO_GRAMAS var P: real PG: real início escreva “Informe o peso em quilos:” leia P PG� P * 1000 escreva “O peso em gramas e:” escreva PG fim #include <stdio.h> int main() { float P; float PG; printf(“Informe o peso em quilos:”); scanf(“%f”, &P); PG = P * 1000; printf(“O peso em gramas e:”); printf(“%f”, PG); return 0; } Atenção: não esqueça do & no scanf() 56 � Se você esquecer o & não dá erro de compilação � Na hora da execução é que o problema aparece, a tela “trava”. #include <stdio.h> int main() { float P; float PG; printf(“Informe o peso em quilos:”); scanf(“%f”, &P); PG = P * 1000; printf(“O peso em gramas e: %f”, PG); return 0; } Outro tipo de erro: colocar o & no printf() 57 � Se você esquecer o & não dá erro de compilação � Na hora da execução é que o problema aparece, a tela “trava”. #include <stdio.h> int main() { float P; float PG; printf(“Informe o peso em quilos:”); scanf(“%f”, &P); PG = P * 1000; printf(“O peso em gramas e: %f”, &P); return 0; } Errado neste caso Exemplo: lendo vários dados 58 programa CALC_APROVACAO var RESULTADO: caractere NI, N2, N3, N4: real SOMA, MEDIA: real início escreva “Informe as 4 notas:” leia NI, N2, N3, N4 . . . fim #include <stdio.h> int main () { char RESULTADO[10]; float N1,N2,N3,N4; float SOMA, MEDIA; printf(“Informe as 4 notas”); scanf(“%f%f%f%f”, &N1,&N2,&N3,&N4); . . . return 0; } Comando de entrada: exemplo 2 59 #include <stdio.h> #include <stdlib.h> int main () { float anos, dias; printf(“Digite a sua idadeem anos: “); scanf(“%f”, &anos); dias = anos * 365; printf(“A sua idade em dias é %.0f.\n”, dias); system(“PAUSE”); return 0; } A execução poderia ser: Digite a sua idade em anos: 4 A sua idade é 1460. A execução poderia ser: Digite a sua idade em anos: 12.5 A sua idade é 4563. Dados inteiros: exemplo 60 programa CALC_CUSTO var qtd_caderno, qdt_caneta, qtd_borracha: inteiro custo: real início escreva “Informe a quantidade de caderno, caneta e borracha” leia qtd_caderno, qdt_caneta, qtd_borracha custo � qtd_caderno * 10.0 + qdt_caneta * 0.80 + qtd_borracha * 0.50 escreva “Custo total eh:”, custo fim #include <stdio.h> int main () { int qtd_caderno, qdt_caneta, qtd_borracha; float custo; printf(“Informe a quantidade de caderno, caneta e borracha”); scanf(“%d%d%d”, &qtd_caderno, &qdt_caneta, &qtd_borracha); . . . return 0; } Referências � ALGORITMOS. MANZANO – Lógica para desenvolvimento de programação de computadores. José Augusto N. G. Manzano, Jayr Figueiredo de Oliveira. São Paulo: Érica, 2006. � ALGORITMOS ESTRUTURADOS. Harry Farrer, Christiano Gonçalves Becker, Eduardo Chaves Faria et al. 3ª Edição. Rio de Janeiro: LTC, 2008. 61
Compartilhar