Você está na página 1de 12

Curso Superior de Tecnologia em Anlise e Desenvolvimento de Sistemas Desenvolvimento de Algoritmos e Tcnicas de Programao Data: 15/08/2011 Professores: Alex, Durval,

Silvia Assunto: Variveis Entrada de dados na Linguagem C/C++

Contedo
Variveis ................................................................................................................................................................ 1 Declarao de variveis ...................................................................................................................................... 1 Tipos de dados ..................................................................................................................................................... 1 Atribuio de variveis ........................................................................................................................................ 2 Sada de dados nas Linguagens C/C++ .......................................................................................................... 2 Entrada e sada de dados nas Linguagens C/C++ ......................................................................................... 6 Converso entre Tipos (Type Casting) ............................................................................................................. 9 Exerccios propostos ......................................................................................................................................... 10 Variveis Uma varivel uma poro de memria que tem como objetivo guardar informaes que sero necessrias em um programa. Cada varivel possui um identificador, ou seja, um nome definido pelo programador. Desde que algumas regras sejam respeitadas, o programador escolhe o nome que achar mais apropriado para batizar a varivel que ele ir trabalhar. A declarao de uma varivel uma instruo que tem como objetivo reservar um espao na memria do computador para armazenar um certo tipo de informao, associando a este espao um tipo de dado e uma identificao (rtulo, etiqueta ou, mais usualmente, nome da varivel) definida pelo programador. Declarao de variveis Em C/C++, de preferncia, e para uma melhor organizao, as variveis so declaradas no incio do programa. A etapa de declaraes em um programa est relacionada com a alocao de memria para os dados que sero utilizados no decorrer do programa. A quantidade de memria alocada quando declaramos cada varivel est relacionada com o tipo de dado a ser armazenado naquela varivel. Tipos de dados A linguagem C/C++ possui quatro tipos bsicos de dados, que so especificados pelas palavraschave: char, int, float e double. char /* O tipo char (caractere) usado para texto.*/ int // O tipo int usado para valores inteiros. float double /*Os tipos float e double expressam valores de ponto flutuante (fracionrios)*/ Observao: Na aula de hoje trabalharemos com os tipos de dados para nmeros inteiros (int) e para nmeros reais (float)

Atribuio de variveis Uma maneira de armazenar um valor em uma varivel atravs de um comando de atribuio. O comando de atribuio em C/C++ possui uma seqncia de 3 elementos. O primeiro, obrigatoriamente, deve ser o nome da varivel onde voc deseja guardar uma informao; o segundo sempre o sinal de = e o terceiro uma expresso cujo resultado voc quer guardar na varivel. Exemplo: se x uma varivel (do tipo int) x = 3; // armazena o nmero 3 em x x = 3 + 4; // armazena o resultado de 3 + 4 (que 7) em x Sada de dados nas Linguagens C/C++ Em C/C++ existem vrias maneiras de fazer a escrita de informaes. Esta operao chamada de sada. Para imprimir na tela, pode ser usado o chamado canal (stream) de entrada e sada. O canal de sada para a tela designado por cout. Para efetuar uma operao de escrita de dados na tela usase o operador << associado ao cout. Os smbolos << no podem ser escritos separados. Mais genericamente, o canal cout uma entidade que permite escrever informao seqencialmente a partir de algum dispositivo. Depois de se fazer #include <iostream.h> h em princpio o estabelecimento do canal cout, que um canal de sada e est normalmente associado tela do monitor. Por exemplo: int soma; // Declarao da varivel inteira soma em C/C++ soma = 3+2006; cout << "\nVou escrever o valor de soma a seguir a esta frase: " << soma; Importante: para imprimir na tela o contedo de uma varivel no escrever o nome da varivel entre aspas. Exemplo 1: Programa que exemplifica o uso de variveis
#include <iostream.h> int main() { int i ; // declara a varivel inteira i float j ; /* declara a varivel real j */ i=4; /* inicializa a varivel i com o valor 4 */ j=5.5; /*inicializa a varivel j com o valor 5.5 */ cout << i << "\n"; // imprime o contedo da varivel i e pula uma linha cout << "Numero real = " << j << "\n"; return 0; }

Sada na Tela: 4 Numero real = 5.5 Press any key to continue

Exemplo 2: Programa que exemplifica o uso de variveis


#include <iostream.h> int main(){ int soma; soma = 3 + 2006; // agora na varivel soma tem o valor 2009 cout << soma ; cout << "\n"; return 0; }

Sada na tela: 2009 Press any key to continue Exemplo 3: Programa que exemplifica o uso de variveis
#include <iostream.h> int main(){ int a,b; a = 3 + 2; // agora na variavel a tem o valor 5 b = a * 3; // agora na variavel b tem o valor 15 b = 7 % 2; // agora na variavel b tem o valor do resto da divisao cout << "\nVamos ver o valor armazenado na variavel a: " << a; cout << "\nAgora vamos ver o valor armazenado na variavel b: " << b << "\n"; return 0; }

Sada na tela: Vamos ver o valor armazenado na variavel a: 5 Agora vamos ver o valor armazenado na variavel b: 1 Press any key to continue Exemplo 4: Programa que efetua a diviso entre dois nmeros inteiros. O programa mostra na tela o resultado da diviso (a parte inteira do quociente) e o resto dessa diviso (lembrando ser um nmero inteiro): #include <iostream.h> int main ( ){ int divisor, dividendo, div_quociente, resto; // declarao de variveis dividendo = 15; // inicializao da varivel divisor = 6; // inicializao da varivel div_quociente = dividendo / divisor ; // parte inteira da diviso resto = dividendo % divisor; // resto da diviso entre nmeros inteiros cout << "\nA divisao inteira entre << dividendo << e << divisor; cout << " = " << div_quociente << \n; cout << "\nResto = " << resto << \n; return 0; } Sada na tela:

A divisao inteira entre 15 e 6 = 2 Resto = 3 Press any key to continue Exemplo 5: Programa capaz de inverter um nmero inteiro de 3 algarismos. Ou seja, Para nmero 123, dever aparecer na tela 321; Se o nmero fosse 3, deveria aparecer na tela o nmero 300; Se o nmero fosse 260, deveria aparecer na tela 62. #include <iostream.h> int main(){ //declarao de variveis int centena, dezena, unidade, Ninvertido, N; N = 123; // inicializao da varivel //decomposio do nmero 123 centena=N/100; dezena=N%100/10; unidade=N%100%10; //construo do nmero invertido Ninvertido=unidade*100+dezena*10+centena; //mostrando o resultado cout << "Numero invertido = " << Ninvertido << "\n"; return 0; } Sada na tela: Numero invertido = 321 Press any key to continue Exemplo 6: Escreva um programa que calcule a quantidade de dias que um aluno pode faltar e no ficar reprovado por falta em uma unidade de ensino chamada Filosofia. O programa utiliza a carga total de aulas (40), a participao mnima obrigatria que de 75%, calcula a quantidade de aulas que pode faltar e depois calcula quantos dias. Ao final o programa imprime na tela a quantidade de aulas em que o aluno pode faltar e quantos dias sero possveis faltar. #include <iostream.h> int main(){ int minimo_aulas, quantidade_faltas, quantidade_dias; minimo_aulas = (40 *75)/100; quantidade_faltas = 40 - minimo_aulas; quantidade_dias = quantidade_faltas / 2; cout<< Posso ter << quantidade_faltas << faltas \n; cout<< Isso significa apenas << quantidade_dias << dias \n; return 0; } Sada na tela: Posso ter 10 faltas Isso significa apenas 5 dias Press any key to continue

Exemplo 7: Um programa que efetua a diviso entre dois nmeros e armazena em uma varivel este resultado, imprimindo a seguir o contedo desta varivel. #include <iostream.h> int main(){ float resultado; resultado = 10.0 / 4; cout<< resultado; cout<<\n; return 0; } Sada na tela: 2.5 Press any key to continue Exemplo 8: Escreva um programa que imprima na tela o valor que uma pessoa ter de aumento e depois imprima o valor que a pessoa passar a receber. Considerando que a pessoa recebe um salrio de R$1000,00 e o aumento ser de 7,5% #include <iostream.h> int main(){ float aumento, salario_final; aumento = (7.5 * 1000) / 100; cout<< Aumento = << aumento; cout<<\n; salario_final = 1000 + aumento; cout << Valor final = <<salario_final; cout <<\n; return 0; } Sada na tela: Aumento = 75 Valor final = 1075 Press any key to continue Entrada e sada de dados nas Linguagens C/C++ Em C/C++ podemos fazer operaes de leitura ou escrita de dados. Essas operaes so chamadas de operaes de entrada e sada. Para imprimir na tela e ler valores do teclado, podem ser usados os chamados canais (streams) de entrada e sada. O canal de sada para a tela designado por cout. Para efetuar uma operao de escrita de dados na tela usa-se o operador << associado ao cout. O canal de entrada de dados pelo teclado cin. Para efetuar uma operao de leitura de dados do teclado usa-se o operador >> associado ao cin. Por exemplo: int a; cin >> a;

Aps uma operao de entrada de dados, a varivel toma o valor que foi inserido no teclado pelo utilizador do programa, desde que esse valor possa ser tomado por esse tipo de varivel. Ao ser executado um cin, como acima, o computador interrompe a execuo do programa at que seja introduzido algum valor no teclado. Outro exemplo: char caractere; cout << "\nInsira um caractere: "; cin >> caractere; cout << "\nO caractere inserido : " << caractere; A sada seria Insira um caractere: x O caractere inserido : x Mais genericamente, os canais so entidades que permitem ler ou escrever dados seqencialmente a partir de algum dispositivo. Depois de se fazer #include <iostream.h> h em princpio dois canais que ficam estabelecidos: cin e cout. O primeiro um canal de entrada e est normalmente ligado ao teclado. O segundo um canal de sada e est normalmente associado tela do monitor. Exemplo 9: Programa que l do teclado um valor em dias e converte esse valor para anos #include <iostream.h> int main (){ int Dias; /* Declaracao de Variaveis */ float Anos; cout << "Entre com o nmero de dias: "; cin >> Dias; Anos=Dias/365.0; /* Conversao Dias->Anos */ cout << Dias << " dia(s) equivale(m) a " << Anos << " ano(s).\n"; return 0; } Exemplo 10: Programa capaz de inverter um nmero inteiro de 3 algarismos qualquer. Ou seja: Se for digitado o nmero 327, dever aparecer na tela 723; Se for digitado o nmero 003 ou apenas 3, dever aparecer na tela o nmero 300; Se for digitado o nmero 260, dever aparecer na tela 62.

#include <iostream.h> int main(){ //declarao de variveis int N, centena, dezena, unidade, Ninvertido; //leitura do nmero e armazenamento na varivel N cout << "Digite um numero inteiro de 3 digitos: "; cin >> N; //decomposio do nmero digitado centena=N/100; dezena=N%100/10; unidade=N%100%10; //construo do nmero invertido Ninvertido=unidade*100+dezena*10+centena; //mostrando o resultado cout << "Numero invertido = " << Ninvertido << "\n"; return 0; } Sada na tela: Digite um numero inteiro de 3 digitos: 123 Numero invertido = 321 Press any key to continue Exemplo 11: Escreva um programa que calcule a quantidade de aulas mnimas necessrias para evitar reprovao por falta. O programa deve permitir que seja digitada a carga total de aulas e a participao mnima obrigatria de 75%. #include <iostream.h> int main() { // a quantidade= (75 * valor_digitado) / 100 int valor_digitado; cout<< Digite a quantidade mxima de aulas: ; cin>> valor_digitado; cout<< (valor_digitado*75)/100.0; cout<<"\n"; return 0; } Sada na tela: Digite a quantidade mxima de aulas: 120 90 Press any key to continue

Converso entre Tipos (Type Casting) Quando voc divide um nmero inteiro por outro nmero inteiro, o compilador C mantm o tipo inteiro, ou seja, no converte o resultado para real. No caso da diviso real voc deve realizar a converso de um dos operandos para float (real). Se um dos operandos for float, o compilador converte o outro para float. Voc mesmo pode especificar a converso (alterao) temporria no tipo de dado. Isto chamado type casting. Ao utilizar o cast, voc muda temporariamente o tipo original de uma varivel declarada para um novo. A linha de cdigo abaixo utiliza o cast de tipos na varivel inteira dividendo para transform-la em uma de ponto flutuante temporariamente, de forma que possa ser realizada a diviso entre os dois operandos e possamos obter um resultado real (em ponto flutuante): resultado = (float) dividendo / divisor; Exemplo 12: Programa que ilustra a converso entre tipos. #include <iostream.h> int main( ){ int divisor, dividendo; // declarao de variveis float resultado; //declarao de varivel dividendo = 15; // inicializao da varivel divisor = 6; // inicializao da varivel resultado = (float) dividendo / divisor; // realiza a diviso utilizando o cast // cout imprime na tela cout << "Resultado da divisao = " << resultado << "\n"; return 0; } Sada na Tela: Resultado da divisao = 2.5 Press any key to continue

Exerccios propostos Esses exerccios poderiam ser feitos sem o uso de variveis. Poderiam, mas no devem. Voc deve fazer os exerccios usando pelo menos uma varivel para treinar os conceitos aprendidos. Todos os programas devem vir acompanhados de descrio narrativa. 1. Escreva um programa que converta um valor armazenado em polegadas para centmetros. Imprima na tela o valor calculado para 4 polegadas. Sabemos que 1 polegada equivale a 2,54 centmetros. 2. Uma hora tem 60 minutos. Em uma quantidade armazenada de horas quantos minutos existem? Escreva um programa que calcule e imprima na tela este valor. Armazene os valores 20 e depois altere para 12,5 horas. 3. Existem medidas especficas para grandes extenses, como stios, chcaras e fazendas. So elas o hectare e o are. Onde: 1 hectare(ha) = 10000m2 1 are(a) = 100m2 Escreva um programa que calcule qual a sua medida em hectare e em are de uma quantidade de metros quadrados armazenados. OBS: Medidas so nmeros reais. Faa um programa cujo o valor armazenado seja 132500 m 2.

4. Uma empresa pretende diminuir a diferena entre o salrio de seus funcionrios e decidiu dar aumentos proporcionais da seguinte forma: salrio bruto R$500.00 : Aumento de 15% salrio bruto R$900.00 : Aumento de 10% salrio bruto R$1500.00: Aumento de 5% Com base nestes ndices, escreva um programa que calcule e imprima na tela os trs novos salrios. (dever ser impresso na tela, R$ 575.00 , R$ 990.00 e R$ 1575.00.) 5. Um fabricante vendeu 120 unidades de um produto que custa R$ 40,00. Sobre o valor vendido, o fabricante paga 40% de imposto. Escreva um programa que calcule o valor de imposto a ser pago. 6. Escreva um programa que calcule o valor do desconto de uma mercadoria paga a vista e o valor total a ser pago. Considere o valor da mercadoria como sendo R$ 330,00 e a porcentagem do desconto 5%. (Dever aparecer para o desconto 16.5 e para o valor a ser pago 313.5). 7. Em uma disciplina estavam matriculados 82 alunos. Deste total, 30 alunos foram reprovados. Escreva um programa que calcule e imprima na tela a porcentagem de alunos reprovados. (dever aparecer 36.58%). 8. Uma pessoa obesa, pesando num certo momento 150kg, recolhe-se a um SPA onde se anunciam perdas de peso de at 2,5kg por semana. Supondo que isso realmente ocorra, escreva um programa que calcule e imprima na tela o peso final que a pessoa dever ter ao final de 20 semanas. (dever aparecer: 100 quilos). 9. Precisamos alugar um carro por um nico dia. Consultadas duas agncias, a primeira cobra R$62,00 pela diria e R$1,40 por quilmetro rodado. A segunda cobra diria de R$80,00 e mais R$1,20 por quilmetro rodado. Sabendo que rodaremos 190 Km, escreva um programa que calcule quanto pagaramos em cada uma das agncias.

10. Alguns jornais calculam o nmero de pessoas presentes em atos pblicos, considerando que cada metro quadrado ocupado por 4 pessoas. Escreva um programa que calcule qual a estimativa do nmero de pessoas presentes numa praa de 3250m 2, que tenha ficado lotada para um comcio, segundo essa avaliao. 11. Fazer um programa que leia uma temperatura fornecida em graus Farenheit e a converta para o seu equivalente em graus centgrados, imprimindo este valor na tela. Dado:

5 ( F 32) 9

12. Escreva um programa que leia os valores da base maior (B), base menor (b) e altura (h) de um trapzio, e calcule e imprima o valor de sua rea, sabendo que a rea de um trapzio (A) dada por:

( B b) h 2

13. Escreva um programa que calcule o valor do desconto de uma mercadoria paga a vista e o valor total a ser pago. O programa deve ler o valor da mercadoria e a porcentagem do desconto. Depois o programa deve calcular e imprimir na tela o valor do desconto e o novo valor da mercadoria com o desconto. 14. Um funcionrio recebe um salrio fixo mais 4% de comisso sobre as vendas. Escreva um programa que leia o valor do salrio fixo de um funcionrio e o valor de suas vendas, calcule e mostre na tela a comisso e o salrio final do funcionrio. 15. Faa um programa para converter um dado valor em reais (R$) para a moeda dlar (US$). O programa deve ler um valor em reais (R$) e a cotao da moeda americana, depois converter para dlares (US$) e apresentar este valor convertido na tela. 16. Escreva um programa em C/C++ para ajudar um professor a fazer seu planejamento. Esse programa deve ter como entrada um valor em minutos digitado pelo professor e realizar a converso para horas/aula mostrando o resultado na tela. Dado: 1 hora/aula = 50 minutos 17. Escreva um programa que leia um nmero inteiro de quatro algarismos (vamos supor que o usurio digite um nmero de quatro algarismos, ou seja, um nmero entre 1000 e 9999). Voc deve trocar o primeiro algarismo com o ltimo, construindo um novo nmero, e imprimir na tela este novo nmero. Exemplo: Se digitado o nmero 5341, deve aparecer na tela o nmero 1345. Se digitado o nmero 4578, deve aparecer na tela o nmero 8574. Se digitado o nmero 1230, deve aparecer na tela o nmero 231. 18. Um sistema de mquinas demora 37 segundos para produzir uma pea. Sua tarefa fazer um programa que leia a quantidade de peas a ser produzida e calcule o tempo em horas, minutos e segundos necessrio para produzir essa quantidade de peas. Exemplo: Se digitado pelo usurio o nmero 250, dever aparecer na tela 2 horas, 34 minutos e 10 segundos.

19. Um SPA anuncia perdas de peso de at 2,5kg por semana. Suponhamos que isso realmente ocorra e que voc deseja fazer um programa para ajudar os possveis clientes do SPA a calcular o peso que podero atingir. Para isso, escreva um programa que leia o peso da pessoa e a quantidade de semanas que pretende passar no SPA, calcule o possvel peso e imprima na tela o valor calculado. Exemplo: Se digitado 150 para o peso e 20 para a quantidade de semanas, dever aparecer na tela o nmero 100. 20. Um aluno deseja saber qual a porcentagem de faltas que ele tem em cada disciplina. Ajude esse aluno fazendo um programa para que ele sempre possa calcular sua porcentagem de faltas. Para isso, escreva um programa que leia a carga horria da disciplina e a quantidade de faltas acumuladas, calcule a porcentagem e a imprima na tela.