Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina Informática e Computação CMP – 1060 Prof. MSc Mário Oliveira Orsi 03/08/2011 AULA 01 Roteiro da 1a aula Objetivo: Apresentação da disciplina Atividades: Apresentação e Distribuição do Programa. Discussão preliminar dos conteúdos e Plano de Avaliações. Apresentação do conceito de algoritmo Algoritmo Algoritmo: é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações. Exemplo: montar um algoritmo para um criança de 5 anos acender um palito de fósforo 1. Pegue o objeto (caixa de fósforo) 2. Segure firme o lado preto da cx de fósforo 3. Empurre para abrir e ver um palito 4. Pegue um palito 5. Friquicione a extremidade grossa na parte preta Verifique que esta faltando um passo na sequencia anterior uma vez que os palitos iriam cair: 1. Pegue o objeto (caixa de fósforo) 2. Segure firme o lado preto da cx de fósforo 3. Empurre para abrir e ver um palito 4. Pegue um palito 5. FECHE A CAIXA 6. Friquicione a extremidade grossa na parte preta O detalhamento deve se completo para que as instruções tenham o efeito desejado. AULA 02 Roteiro da 2 a aula Referência ao Programa: Conceitos Básicos Conceitos de Hardware/Software; Estrutura de um computador digital; Representação e armazenamento da informação; Histórico, evolução e perspectivas da computação; Arquitetura de um Sistema de computação : Memória, Unidade Central de Processamento, Entrada e Saída, e Periféricos. Objetivo: apresentar os conceitos básicos de informática. Conceitos Básicos Informática - infor + mática. É o tratamento da informação de forma automática Dado - é tudo aquilo que é fornecido ao computador de forma bruta Informação - é o resultado obtido do computador após o processamento Processamento de Dados - é um conjunto de operações que aplicadas a dados nos fornece uma informação Computador - é uma máquina que processa dados de forma automática HARDWARE - componente, ou conjunto de componentes físicos internos e externos de um computador ou de seus periféricos. Hardware - é a parte física do computador Exemplos de Hardware : Monitor, Teclado, Mouse, Impressora, Plotters, Caneta Óptica, Modem, Hub, Leitoras Ópticas, Scanner CPU etc ..... BIT - Binary Digit. É a menor unidade de informação em um computador. Pode ser 0 (desligado) ou 1 (ligado) Byte - conjunto de 8 BITs. É unidade básica de medida da memória em um computador. OPERAÇÕES BÁSICAS DE UM COMPUTADOR Exemplo: Folha de Pagamento Entrada = nome, salário, horas extras, etc. de cada funcionário Processamento = cálculo do salário Saída = Contracheques e outros relatórios Sistema de Computador • O computador é um sistema de hardware, uma combinação de componentes inter-relacionados que desempenham as funções básicas do sistema: entrada, processamento, saída, armazenamento e controle. • Memória Principal - é formada por 2 memórias RAM e ROM • ROM - memória somente para leitura. É pré-gravada pelo fabricante. Não é volátil • RAM - memória de acesso aleatório. Armazena as informações em processamento enquanto o computador estiver ligado. É volátil. • Memória Auxiliar - unidades que armazenam programas e dados para posterior utilização. Ex: pen drive • Periféricos de Entrada - unidades para entrada de dados no computador. Ex: teclado • Periféricos de Saída - unidades para saída de dados do computador. Ex: monitor de vídeo ARQUITETURA DE UM COMPUTADOR Microprocessador- CPU (unidade central de processamento. É quem lê e executa todas as informações dos programas. Chip de Memória: DISCO RÍGIDO ou HD disco rígido interno ao computador com grande capacidade de armazenamento de dados os tamanhos mais comuns são: 10, 16, 20 Gigabytes ou mais armazena os programas e arquivos a serem utilizados pelo usuário VELOCIDADE DE PROCESSAMENTO Clock - velocidade do micro-processador. É medido em MHz (1.000.000 de ciclos por segundo) Evolução do Clock : PC-XT 8 MHz AT-286 25 MHz AT-386 SX 33 MHz AT-386 DX 40 MHz AT-486 SX 33 MHz AT-486 DX 50 MHz AT-486 DX2 66 MHz AT-486 DX4 100 MHz Pentium 100-133-150-166 MHz Pentium MMX 150-166-200-300 MHz Pentium II 300-400-450 MHz Pentium III 1200 MHz ou mais Pentium V 1300 MHz ou mais Intel Corel 2 1,67 GHz Celeron (R) 1,80 GHz SOFTWARE - é a parte lógica de um sistema de computador, são programas, instruções que a máquina (hardware) pode executar. Software - são os programas e aplicativos que permitem o funcionamento do computador Exemplos de Softwares Windows XP, Windows Vista, Word, Excell, PowerPoint, Freelance, Access, Translator, Netscape, Wingate, Auto Cad, NT, Unix etc .... Sistema Operacional - é responsável pela comunicação homem-computador. Ex: DOS e Windows Linguagens de Programação - utilizadas por programadores para desenvolver programas aplicativos. Ex: C++, Fox Pro, Delphi, Java, etc Programas Utilitários - facilitam a manutenção de discos e arquivos. Ex: Compactador, Backup, etc. TIPOS DE SOFTWARE Programas Aplicativos - desenvolvidos em certa linguagem de programação para fins específicos. Exemplos: Editor de texto, Planilha eletrônica, Controle de estoque. Banco de dados Editoração eletrônica e Programas Gráficos Navegadores (Browsers): mostra as páginas da internet. Ex. Internet Explorer, Navigator LINGUAGENS DE PROGRAMAÇÃO • Linguagem de Máquina ou de Baixo Nível - é a linguagem compreendida internamente pelo computador. Suas instruções são escritas em códigos binários • Linguagem Montadora - linguagem intermediária entre a linguagem de máquina e a linguagem de alto nível. É escrita através de códigos simbólicos utilizando números, letras e símbolos. Ex: Assembler • Linguagem de Programação ou Alto Nível - é a linguagem utilizada pelo usuário para escrever programas de computador. Os programas são escritos utilizando palavras da língua inglesa. Ex: Pascal e C Ling.de Maquina Ling.de programação Baixo Alto Nível LINGUAGENS DE PROGRAMAÇÃO • Antes do computador executar os programas eles devem antes ser traduzidos para a linguagem de máquina. Esta tradução é feita através um software denominado compilador. A operação de tradução do programa para linguagem de máquina é chamada compilação ITENS FUNDAMENTAIS • Algorítmo: é a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações. • Comandos: determina as ações a serem executadas pelo destinatário. • Estrutura: determina a ordem e as condições dos comandos que devem ser executados. • Estruturas de Controle: • Sequencial: os comandos são executados um após o outro, na mesma ordem em que aparecem escritos, se não houver indicações ao contrário. • Condicional: provoca ou não uma ação dependendo se a condição for falsa ou verdadeira • Repetição: repete os comandos e estruturas de comando até que encontra uma condição para que interrompa a repetição. ALGORITMO:Exemplo: Desenvolva os passos de um programa que converte polegadas para centímetros. 1 inch 2.54 cm Solução: Passos para converter POL CM 1. Alocar duas variáveis POL, CM numéricas 2. Entrar POL {medida em polegadas} 3. Calcular CM = 2.54 * CM 4. Mostrar CM Ling.de programação Ling.de Máquina compilação EXERCÍCIOS: 1- Desenvolva os passos de um programa para calcular a área de um retângulo Solução: 1. Alocar três variáveis B, H e AREA numéricas 2. Entrar B, H {valor em centímetros} 3. Calcular AREA = B * H 4. Mostrar AREA 2- Sabendo-se um dollar = R$ 1,90; Desenvolva os passos de um programa que dada uma quantia em dollar calcula o valor em real. Solução: 1. Alocar duas variáveis D, R numéricas 2. Entrar D {valor em dollares} 3. Calcular R = 1,90 * D 4. Mostrar R AULA 03 Roteiro da 3 a aula Referência ao Programa: Elementos básicos do algoritmo e da programação Constantes; variáveis, expressões aritméticas, lógicas e literais; comandos de atribuição, entrada e saída; Objetivo: apresentar os conceitos itens fundamentais da linguagem C++ ITENS FUNDAMENTAIS Programando em C++ TIPOS DE DADOS do C O C tem 5 tipos básicos: char, int, float, void, double; Modificadores: long, short, signed, unsigned Tipo Num de bits Intervalo Inicio Fim char 8 -128 127 unsigned char 8 0 255 signed char 8 -128 127 int 32 -32.768 32.767 unsigned int 32 0 65.535 signed int 16 -32.768 32.767 short int 16 -32.768 32.767 unsigned short int 16 0 65.535 signed short int 16 -32.768 32.767 long int 32 -2.147.483.648 2.147.483.647 signed long int 32 -2.147.483.648 2.147.483.647 unsigned long int 32 0 4.294.967.295 float 32 3,4E-38 3.4E+38 double 64 1,7E-308 1,7E+308 long double 80 3,4E-4932 3,4E+4932 1. Constantes: São valores que são mantidos fixos pelo compilador. Tipo de Dado Exemplos de Constantes char ‟b‟ ‟\n‟ ‟\0‟ int 2 32000 -130 long int 100000 -467 short int 100 -30 unsigned int 50000 35678 float 0.0 23.7 -12.3e-10 double 12546354334.0 -0.0000034236556 Exemplos Constantes Globais #define nome „UCG‟ #define pi 3.14159 #define minimo 380 Exemplos Constantes Locais const int a; const float pi = 3.14 2. Variáveis: São valores que podem ser alterados durante o programa. Representa um espaço de memória reservado para armazenar um determinado tipo de dado. Este espaço deve ser identificado por um nome (identificador) para se referir ao seu conteúdo. Para definir este nome ou identificador devemos: • Começar com uma letra ou sublinhado ( _ ) e os caracteres subsequentes devem ser letras, números ou sublinhado ( _ ). • No máximo 32 caracteres. EXEMPLOS: _SALDO_1A DOLAR A_REA Declaração de variáveis tipo_da_variável lista_de_variáveis; É um instrução que: Define no mínimo um nome (num1) e tipo (int) com o qual podemos acessar o conteúdo da variável. Reserva a quantidade necessária para armazenar o tipo definido. EXEMPLOS: int dias; float salario, media, altura, n1, n2; char ch, letra, nome[20]; long count; float pi = 3.14159; double cosseno; 3. COMANDO DE ATRIBUIÇÃO ( = ) Operação ou COMANDO de ATRIBUIÇÃO: é representado pelo sinal = que significa que o valor ou expressão da direita é atribuído à variável da esquerda. Identificador_da_variável = valor, expressão aritmética, função Exemplos: dias = 260; salario = 380.00; media = 0.4 * n1 + 0.6 * n2; letra = „m‟; cosseno = cos(2*pi); count = (dias + 180)/2; Variáveis do mesmo tipo devem ser separadas por vírgula ( , ). Todo comando é finalizado com ponto-vírgula ( ; ) Operadores Aritméticos e de Atribuição Operador + - * / % ++ -- Ação Soma (inteira e ponto flutuante) Subtração ou Troca de sinal (inteira e ponto flutuante) Multiplicação (inteira e ponto flutuante) Divisão (inteira e ponto flutuante) Resto de divisão (de inteiros) Incremento (inteiro e ponto flutuante) Decremento (inteiro e ponto flutuante) x++; x--; são equivalentes a x = x + 1; x = x – 1 Expressão Original Expressão Equivalente x = x + k; x + = k; x = x - k; x - = k; x = x * k; x * = k; x = x / k; x / = k; Exemplos: CONSEQUENCIAS: int a = 17, b = 3; int x, y; float Z = 17. , Z1, Z2; x = a / b; DIVISÃO INTEIRA y = a % b; RESTO DE DIVISÃO INTEIRA Z1 = z / b DIVISÃO PONTO FLUTUANTE Z2 = a / b; PRIMEIRO PROGRAMA em C++ IMPRIMIR NA TELA DO MONITOR A FRASE: Primeiro Programa #include <cstdlib> // diretiva para dev c++ windows #include <iostream> // diretiva do pré processador using namespace std; /*diretiva using*/ main ( ) { cout << “Primeiro Programa”; system(“PAUSE”); return 0; } obs.:Diretivas: para auxiliar o desenvolvimento do programa fonte ( não pertencem à ling C++} #include <cstdlib> Diretiva para permitir o uso da função system ( ) no Windows (não necessário nos compiladores mais novos) // diretiva para dev c++ Windows comentário (quando usar compilador no Windows) #include <iostream> // diretiva do pré processador Arquivo que contém declarações necessárias para entrada e saída de dados (cin, cout) using namespace std; /*diretiva using*/ necessário para usar os nomes dentro de um name space sem explicitar o qualificador ( ex. std::cout << “Primeiro Programa”) system(“PAUSE”); Solicita ao computador uma PAUSA até que uma tecla seja pressionada return 0; solicita à função main ( ) que retorne “zero” para quem a chamou. (não necessário nos compiladores mais novos) 4. Comando de Saída ( cout ) Ex: cout << “ Primeiro Programa”; Objeto cout prédefinido na diretiva <iostream> com o padrão da classe de leitura e impressão declarado no namespace std O operador << é chamado de operador de inserção e envia a mensagem “ Primeiro Programa” a ser impressa para a saída padrão (vídeo) Define uma função de nome main presente em todos os programas em C Que é chamada quando o programa for executado. As { } delimitam o seu conteúdo Diz ao compilador que ele deve incluir o cabeçalho <iostream> íé os arquivos que contém os comandos de entrada e saída. Códigos especiais \ (com barra invertida) cout << “Primeiro Programa \n”; cout << “ Primeiro Programa ”<< endl; Exemplo: programa imprime na tela a mensagem: Ola! Eu estou vivo. #include <iostream> // diretiva do pré processador using namespace std; /*diretiva using*/ main () /* Um Primeiro Programa */ { cout <<"Ola! Eu estou vivo!\n"; system(“PAUSE”); } O C é "Case Sensitive": o maiúsculo difere do minúsculo variáveis diferentes Soma, SOMA, SoMa, sOmA comandos (letras minúsculas) cin, cout Usando COUT Exemplo 1 #include <iostream> using namespace std; main( ) Códigos especiais Significado \n \t \a \r \0 Nova linha Tabulação beep CR – volta o cursor para o inicio da linha Zero (Null) { cout << "Exemplode um programa em C++!" << endl; cout << "Legal programar em C++!"; cout << endl << "eh bem interessante!\n"; cout << "Esta eh‚ a linha um\nEsta eh‚ a linha dois\n"; cout << 3.14159; cout << "\n\nAos " << 20 << " anos eu ganhava " << 493.34 << endl; cout << "Bip\a\tBip\a\tBip\a\n"; system("PAUSE"); } Exemplo 2 #include <iostream> using namespace std; main ( ) { int idade = 32; float salario = 25000.75; long dist_lua = 382171; int positivo = 40000; cout <<"O funcionario tem"<<idade<<"anos" <<endl; cout << "O funcionario ganha $" << salario << endl; cout <<"A lua esta "<<dist_lua << " KM da Terra“; cout << "positivo : " << positivo << endl; system("PAUSE"); } 5. Comando de Entrada ( cin ) cin >> variável 1>> variável 2..; // Declara a variável item do tipo char com 20 caracteres e a variável letra também do tipo char char item[20], letra; int num_pesca; // Declara a variável num_pesca do tipo inteiro float custo; // Declara a variável custo do tipo float cout << “ digite: o nome, a letra, custo, qtde pesca”; cin >> item >> letra >> num_pesca >> custo; ao digitar por ex: pedro<enter> b<enter> 5<enter> 7.00<enter> Usando cin Exemplo 1 #include <iostream> using namespace std; main () { char letra; cout << "Digite qualquer caractere e pressione Enter: "; cin >> letra; cout << "A letra digitada foi : " << letra << endl; system(“PAUSE”); } item num_pesca custo letra item num_pesca custo letra b 5 pedro 7.00 Exemplo 2 #include <iostream> using namespace std; main () { int numero; // O número lido no teclado cout << "Digite seu número favorito e pressione Enter: "; cin >> numero; cout << "Seu número favorito ‚ " << numero << endl; system(“PAUSE”); } Exemplo 3 #include <iostream> using namespace std; main () { int primeiro, segundo; // Números digitados no teclado cout << "Digite dois NUMEROS e pressione Enter apos cada entrada: "; cin >> primeiro >> segundo; cout << "Os NUMEROS digitados foram " << primeiro << " e " << segundo << endl; system(“PAUSE”); } Divisão int / int ? #include <iostream> using namespace std; main ( ) { int num; float f; num=10; f = num / 7; cout << “\n” << f <<“\n”; system("PAUSE"); } CASTS (MODELADORES) Um modelador é aplicado a uma expressão. Ele força a mesma a ser de um tipo especificado. Sua forma geral é: (tipo)expressão #include <iostream> using namespace std; main ( ) { int num; float f; num=10; f =(float)num/7; cout << “\n” << f <<“\n”; system("PAUSE"); } Monitor 1 Monitor 1.4285 6. Exercício: feito em classe para implementação no lab. Desenvolver um programa para transformar dias em anos. 1. Declarar as variáveis 2. Ler a quantidade de dias 3. Calcular a correspondência de dias em anos (1 ano =365,25 dias) 4. Exibir o valor calculado Solução #include <iostream> using namespace std; main () { /* Declaração de Variáveis */ int dias; float anos; /* Entrada do valor em dias */ cout<<"Entre com o numero de dias: "; cin>>dias; /* Cálculo da conversão dia em anos */ anos = dias/365.25; /*Exibir o resultado */ cout<<dias<<" dias equivalem a "<<anos<<" anos\n"; system("PAUSE"); } AULA 04 Roteiro da 4 a aula Referência ao Programa: Elementos básicos do algoritmo e da programação Estrutura de fluxo sequencial Objetivo: apresentar a estrutura sequencial da linguagem C++ Estrutura Sequencial Exercícios resolvidos em sala 1. Maria é uma criança muito econômica e têm guardado no seu cofre moedas de dez e cinco centavos. O cofre está tão cheio de moedas que ela resolveu trocar com sua mãe em notas de um real, e para isso ela contou as quantidades de moedas que ela tem de dez e cinco centavos. Desenvolver um programa para transformar o equivalente das moedas de Maria em notas de um real e centavos /* programa MOEDAS */ #include <iostream.> using namespace std; main ( ) { // estruturas de dados int DEZ, // quantidade de moedas de 10 centavos CINCO, // quantidades de moedas de 5 centavos CENTAVOS, // total em centavos que Maria tem no cofre REAL, // quantidade de notas de um real SOBRA; // total de centavos que sobraram // leia os dados de entrada cout << "Informe a quantidade de moedas de 10 centavos que Maria possui:\n "; cin>> DEZ; cout << "Informe a quantidade de moedas de 5 centavos que Maria possui:\n "; cin>> CINCO; // Cálculo total em centavos CENTAVOS =DEZ * 10 + CINCO * 5; // Cálculo da quantidade de notas de um real REAL = CENTAVOS / 100; // quociente entre CENTAVOS e 100 // Cálculo dos centavos que sobraram no cofre SOBRA = CENTAVOS % 100; //resto entre CENTAVOS e 100 // Exibe os valores das variáveis cout<< "Maria tem "<< REAL<< " nota(s) de um real e "<< SOBRA<<" centavos"<<endl; system("PAUSE"); } 2. Fazer um programa que dado o tempo em segundos, necessários para viajar de uma cidade à outra. Calcular e escrever quantas horas, minutos e segundos esta viajem dura. // programa CRONOMETRO #include <iostream.> #define MINSEG 3600 #define SEG 60 using namespace std; main ( ) { //estruturas de dados int TEMPO, HORAS, MINUTOS, SEGUNDOS; // leia os dados de entrada cout<< "Informe o tempo medido pelo cronômetro (em segundos): \n"; cin >> TEMPO; //Calcule a quantidade de horas HORAS = (TEMPO/MINSEG); // quociente entre TEMPO e 3600 //Calcule a quantidade de minutos // quociente da div (resto entre TEMPO e 3600), e 60 MINUTOS = ((TEMPO%MINSEG)/SEG); //Calcule a quantidade de segundos //resto da div (resto entre TEMPO e 3600), e 60 SEGUNDOS = ((TEMPO%MINSEG)%SEG); //exiba os resultados de saída cout <<TEMPO<< " segundos são equivalentes a "<< HORAS<< " horas, "; cout<< MINUTOS<< " minutos e "<< SEGUNDOS<< " segundos"<<endl; system("PAUSE"); } Desafio para lab: Entrar com horário do início da viagem em horas, minutos e segundos (19h20min00seg) e horário do fim da viagem (22h30mim10seg). Calcular e exibir a duração da viagem em horas, minutos e segundos. 3. Dado um número de três dígitos, desenvolver um algoritmo para invertê-lo e armazenando-o em uma outra variável. // programa INVERTIDO #include <iostream> using namespace std; main( ) { //estruturas de dados int NUMERO, INVERTIDO, DEZENA,CENTENA, UNIDADE; // leia os dados de entrada cout<< "Informe o numero para inverter: \n"; cin >> NUMERO; // resto entre NUMERO e 10 UNIDADE = NUMERO%10; // quociente ( resto do NUMERO e 100) e 10) DEZENA = (NUMERO%100)/10; // quociente entre NUMERO e 100 CENTENA = NUMERO/100; // inverter o número INVERTIDO = UNIDADE *100 + DEZENA *10 + CENTENA; //exiba os resultados de saída cout << "o número invertido eh "<< INVERTIDO <<endl; system("PAUSE"); } 4. Fazer um programa para trocar, entre si, os valores das variáveis A e B. Usando uma variável auxiliar.// programa TROCA #include <iostream.> using namespace std; main() { //estruturas de dados int A, B, AUX; // leia os dados de entrada cout<< "Informe o valor da primeira variavel: \n"; cin >> A; cout<< "Informe o valor da segunda variavel: \n"; cin >> B; //Trocar as variáveis AUX = A; A = B ; B = AUX; //exiba os resultados de saída cout << "o valor armazenado na variavel A eh "<< A <<endl; cout << "o valor armazenado na variavel B eh "<< B <<endl; system("PAUSE"); } Desafio em Sala: Trocar os valores das variáveis entre si sem usar variável auxiliar AULA 05 Roteiro da 5 a aula Referência ao Programa: Elementos Técnicas de construção de algoritmos e programas Estruturas de controle de fluxo condicionais Objetivo: apresentar a estrutura condicional CONTROLE DE FLUXO ESTRUTURA CONDICIONAL Os programas que vimos até agora têm a seguinte estrutura: main() { declarações instrução1 instrução2 instrução3 ... instruçãoN } O caso geral da instrução if - else: se a (expressão) for verdadeira executa a instrução 1 senão executa a instrução 2 if ( expressão ) instrução1 ; else instrução2 ; O comando else não é obrigatório: if ( expressão ) instrução1 ; Expressões Logicas: é a expressão cujo operadores são lógicos e cujos operandos são relações, constantes e/ou variáveis do tipo lógico. Relações: X + Y = Z X>Y X*Y <= 1 o resultado será verdadeiro ou falso. Símbolo Significado < Menor > Maior <= menor ou igual >= maior ou igual == Igual != Diferente Operadores Lógicos • e --- conjunção ( é verdadeira se e somente se ambas as proposições são verdadeiras). • ou --- disjunção ( é verdadeira se e somente se, pelos menos uma delas fOU são verdadeiras). • não --- negação (é negação da expressão) E Exemplo de Estrutura Condicional Simples if ( expressão ) instrução1 ; Desenvolver um programa para entrar com um preço do carro e calcular o preço final de acordo com as opções do usuário com os opcionais de vidro elétrico, ar condicionado, trava central, pintura metálica e ar condicionado. !(2 > 3) NÃO ! !(5>1) NÃO ! (4> 2) || (10 > 5) OU || (3> 1) || (10 > 11) OU || (2 >1) && (10 > 9) E && (5 > 1) && (3>10) E && Resultado Exemplo Descrição Operador FALSO VERDADEIRO VERDADEIRO VERDADEIRO FALSO VERDADEIRO // programa PRECOCARRO #include <iostream.> using namespace std; main() { char RESPAC[1],RESPDH[1],RESPPM[1], RESPVE[1],RESPTC[1]; float PRECOFINAL; //leia os dados de entrada cout << "Deseja Ar Condicionado (S/N) , (s/n)? "; cin >> RESPAC; cout << "Deseja Direção Hidráulica (S/N) , (s/n)? "; cin >> RESPDH; cout << "Deseja Pintura Metálica (S/N) , (s/n)? "; cin >> RESPPM; cout << "Deseja Vidros Elétricos (S/N) , (s/n)? "; cin >> RESPVE; cout << "Deseja Trava Central (S/N) , (s/n)? "; cin >> RESPTC; cout << "Qual o preço inicial do carro"; cin >> PRECOFINAL; if( (RESPAC = = 'S') || (RESPAC = = 's') ) PRECOFINAL = PRECOFINAL + 2500.; if( (RESPDH = = 'S') || (RESPDH = = 's') ) PRECOFINAL = PRECOFINAL + 2000.; if( (RESPPM = = 'S') || (RESPPM = = 's') ) PRECOFINAL = PRECOFINAL + 650.; if( (RESPVE = = 'S') || (RESPVE == 's')) PRECOFINAL = PRECOFINAL + 500.; if( (RESPTC = = 'S') ||(RESPTC = = 's') ) PRECOFINAL = PRECOFINAL + 400.; //exiba os resultados de saída cout<< "R$ "<< PRECOFINAL<< " será o preço final do carro.\n"; system("PAUSE"); } Exemplo de Estrutura Condicional Composta if ( expressão ) instrução1 ; else instrução2 ; Desenvolver um programa para entrar com dois números e exibir o maior entre eles. /*Este programa entra com dois números distintos e exibi a mensagem de qual número é maior. Programa MAIOR*/ #include <iostream> using namespace std; main() { // define dois inteiros int X , Y ; //entra com dois números inteiros cout << “Digite dois números inteiros: ”; cin >>X>>Y; //exibe uma mensagem dizendo qual número é maior if (X > Y) { cout << X<<“ eh mair do que " <<Y<< endl; } else { cout << X<<" eh menor do que " <<Y<< endl; } system (“PAUSE”); } //programa PARIMPAR - Esse programa verifica um número é par ou ímpar #include <iostream> using namespace std; main() { int N; cout <<“Digite um número inteiro: "; cin >> N ; if ( N % 2 == 0 ) cout<<N<<” é par\n"; else cout<< N<<" eh ímpar\n"; system (“PAUSE”); Erros frequentes if( expressão ) { instrução1 instrução2 } else { Instrução3 Instrução4 } instrução7 SE EXISTIR MAIS DE UMA INSTRUÇÃO PARA SER EXECUTADA DENTRO DO COMANDO if OU DO else DEVEMOS COLOCAR AS CHAVES { } if(...) instrução1; instrução2; Provavelmente aquilo que queriam fazer era: if(...) { instrução1; instrução2; } Condicional Simples #include <iostream> using namespace std; main( ) { int nota; cout ”Entre com sua nota, por favor\n"; cin>>nota; if (nota >= 7.5) { cout<<"Incrível, você passou com mérito.\n"); } system (“PAUSE”); } Condicional Composta #include <iostream> using namespace std; main( ) { int nota; cout <<”Entre com sua nota, por favor\n"; cin>>nota; if (nota >= 5.0) { cout <<"Você passou.\n"; } else { cout<<”Que pena, você reprovou.\n"; } system (“PAUSE”); } Condicional Composta Aninhada #include <iostream> using namespace std; main( ) { int nota; cout <<”Entre com sua nota, por favor\n"; cin>>nota; if (nota >= 7.5) { cout <<"Incrível, você passou com mérito.\n"; } else if (nota >= 5.0) { cout<<”Você passou\n"; } else { cout<<”Que pena, você reprovou.\n"; } system (“PAUSE”); } AULA 06 Roteiro da 6 aula Referência ao Programa: Elementos Técnicas de construção de algoritmos e programas Estruturas de controle de fluxo condicionais Objetivo: apresentar a estrutura condicional CONTROLE DE FLUXO ESTRUTURA CONDICIONAL EXERCÍCIO 1 #include <math> #include <iostream> using namespace std; main() { // define dois inteiros int N, R; //entra com um número inteiro cout<<“Digite um número inteiro: ”; cin >> N; R = sqrt (N); if ((R*R) = = N) cout << N <<" eh um QUADRADO PERFEITO \n "; else cout << N <<" NAO eh QUADRADO PERFEITO \n "; system (“PAUSE”); } EXERCÍCIO 2: Cálculo da média de um aluno Escrever um programa que lê o numero de identificação e as 3 notas obtidas por um aluno e calculaa média de aproveitamento, usando a fórmula: MA = (NOTA1 + NOTA2 * 2 + NOTA3 * 3) / 6. O programa deve escrever o número do aluno, a média de aproveitamento, o conceito correspondente e a mensagem: Aprovado se o conceito for A, B ou C e Reprovado se D ou E. A atribuição de conceito obedece à tabela abaixo; #include <iostream > #include <string> using namespace std; main() {float NOTA1, NOTA2, NOTA3, MA; int MATRICULA; string CONCEITO, SITUACAO; cout <<"Digite a Matricula \n"; cin >> MATRICULA; cout <<"Digite as 3 Notas \n"; cin >>NOTA1 >> NOTA2 >> NOTA3; MA = (NOTA1+NOTA2*2+NOTA3*3)/6; if ( MA >= 9.1 ) { CONCEITO = 'A'; SITUACAO = “APROVADO”; } else if (MA >= 7.6) { CONCEITO = 'B'; SITUACAO =”APROVADO"; } else if (MA >= 6.1) { CONCEITO = 'C'; SITUACAO =”APROVADO"; } else if (MA >= 4.1) { CONCEITO = 'D'; SITUACAO =REPROVADO"; } else { CONCEITO = 'E'; SITUACAO =REPROVADO"; } cout<<MATRICULA<<“ TEM MEDIA "<<MA<<“ e CONCEITO "<<CONCEITO<<“ e FOI “ << SITUACAO<< endl ; system("PAUSE") ; } EXERCÍCIO 3: Dado quatro números, desenvolver um programa para somar os três maiores. // programa SOMA 3 MAIORES #include <iostream> using namespace std; main( ) { float A,B,C,D,SOMA3; //leia os dados de entrada cout<< "DIGITE 4 NUMEROS QUAISQUER \n"; cin>>A>>B>>C>>D; if ( (A<B)&&(A<C)&&(A<D) ) SOMA3 = B+C+D; else f ( (B<C)&&(B<D) ) SOMA3 = A+C+D; else if (C<D) SOMA3 = A+B+D; else SOMA3 = A+B+C; //exiba os resultados de saída cout<< "A soma dos 3 maiores eh "<< SOMA3 << endl; system("PAUSE"); } Exercício para avaliação em sala: Dado quatro números, desenvolver um programa para somar os três MENORES. // programa SOMA 3 MENORES #include <iostream> using namespace std; main( ) { AULA 07 Roteiro da 7 a aula Referência ao Programa: Elementos Técnicas de construção de algoritmos e programas Estruturas de controle de fluxo condicionais Objetivo: apresentar a estrutura condicional CONTROLE DE FLUXO ESTRUTURA CONDICIONAL EXERCÍCIO 1 Uma locadora tem as seguintes regra para aluguel de fitas: • seg, ter e qua (2,3 e 4) um desconto de 30% no preço normal; dom(1) preço normal; qui, sex e sab (5,6 e 7) um acréscimo de 20% no preço normal. • Aluguel de filmes Comuns: preço normal, Lançamentos: acréscimo de 13% no preço normal Desenvolver um programa para ler o preço normal em R$, o dia a ser locado (1 a 7) a categoria do filme (C ou L). Calcular e imprimir o preço final do aluguel. Considerando que o cliente só pode alugar uma fita por 1 dia. QUAL TESTE ‘PRIMEIRO’? DIA = DOMINGO Não só devemos fazer teste se for para calcular algo #include <iostream> #include <string> using namespace std; main() { float PN, PF; int DIA; string TIPO; cout << “ Digite o preco normal \n "; cin >> PN; cout << "Digite o TIPO (C)COMUM (L)LANCAMENTO \n "; cin >> TIPO; cout << "QUAL O DIA DA LOCACAO 1,2,3,4,5,6 ou 7 \n "; cin >> DIA; // cálculo do preço final PF = PN; if ( (DIA==2) || (DIA==3) || (DIA==4) ) { PF = PN – PN * 0.3; } else if ( (DIA==5) || (DIA==6) || (DIA==7) ) { PF = PN * 1.2; } if( (TIPO=='L') || (TIPO=='l') ) { PF = PF + PN * 0.13; } cout<<"O PRECO FINAL EH R$"<<PF<<endl; system("PAUSE"); } EXERCÍCIO 2 : FAZER EM SALA Uma autolocadora aluga seus carros com uma taxa fixa por dia, acrescido de um taxa por km rodado e dá desconto de 10% no total do aluguel. Escrever um programa que lê o número de dias, o número de quilômetros rodados e calcula e escreve o valor do aluguel a ser pago, o valor do desconto, o número de dias, e a quilometragem rodada. Considere como constante a taxa fixa por dia (50.00), a taxa por km rodado (1.50) e desconto dado (10/100) #include <iostream> using namespace std; #define txdia 50.00 #define txkm 1.50 #define desc 10/100 main() { } AULA 08 AVALIAÇÃO PRELEÇÃO AULA 09 Roteiro da 9 a aula Referência ao Programa: Elementos Técnicas de construção de algoritmos e programas Estruturas de controle de fluxo condicionais Objetivo: apresentar o comando case-switch ESTRUTURA CONDICIONAL COMANDO CASE-SWITCH switch(resposta) { case 'a': sentenças de instruções para a opção a ; break; case 'b': sentenças de instruções para a opção b ; break; case 'c': sentenças de instruções para a opção c ; break; default: sentenças de instruções para entrada errada ; break; } EXEMPLO 1: Escrever um programa que leia dois números inteiros e a operação aritmética. Calcule e mostre o resultado. #include <iostream> using namespace std; main( ) { int a,b, OPCAO; cout << “DIGITE UMA OPCAO\n”; cout << “ (1) Somar (2) Multiplicar (3) Diminuir (4) Dividir \n”; cin >> OPCAO; cout << “Digite 2 numeros\n”; cin >> a >> b; switch (OPCAO) { case 1: cout<<”SOMA = “<< a+b; break; case 2: cout<<”Multiplicacao = “<< a*b; break; case 3: cout<<”DIFERENCA = “<<a-b; break; case 4: if (b==0) { cout<<”\n\n\t VOCE NÃO PODE DIVIDIR POR ZERO. 0 \n\n“; break; } else { cout<<”DIVISAO = “<< a/b; break; } default: cout<<”opcao invalida”; break; } system(“PAUSE”); } EXEMPLO 2: Escrever um programa que leia 3 notas dos alunos e o tipo de média (aritmética, ponderada ou harmônica. Calcule e mostre o resultado. #include <iostream > #include <iomanip> using namespace std; main() { float N1,N2,N3,MEDIA; int opcao; cout << "DIGITE 3 NOTAS\n"; cin >> N1 >> N2 >> N3; cout<<" DIGITE A OPCAO\n"; cout<<"(1) ARITMETICA (2) PONDERADA (3) HARMONICA \n"; cin>>opcao; cout << setprecision(2); switch (opcao) { case 1: MEDIA = (N1+N2+N3)/3; cout << "MEDIA ARITMETICA = "<< MEDIA << endl; break; case 2: MEDIA = (N1+N2*2+N3*3)/6; cout <<"MEDIA PONDERADA = "<< MEDIA << endl; break; case 3: if ((N1==0) || (N2==0) || (N3==0)) { cout<<" \n\n\t VOCE NAO PODE DIVIDIR POR ZERO. 0 \n\n"; break; } else { MEDIA = 3/(1/N1+1/N2+1/N3); cout<<"MEDIA HARMONICA = "<<MEDIA<<endl; break; } default: cout<<"opcao invalida"; break; } system("PAUSE"); } AULA 10 Roteiro da 10 a aula Referência ao Programa: Elementos Técnicas de construção de algoritmos e programas ESTRUTURA DE REPETIÇÃO Objetivo: apresentar como vinculara repetição de blocos à condições; Quando utilizar cada uma das estruturas disponíveis COMANDO while Executa sentenças (comandos) enquanto a condição for verdadeira. Condição (expressão ou teste) é verificada antes do bloco de comandos. Exemplo 1: Mostrar na tela os números de 1 a 10. #include <iostream> using namespace std; Rastreamento (executando linha por linha) main ( ) { int numero = 1; while (numero <= 10) { cout << numero<<"\t"; numero = numero + 1; } system(“pause”); } Exemplo 2: Calcular a soma dos números pares de 2 até 200 Solução: Iniciar o primeiro par = 2 e a soma= 0 Repetir enquanto o par <= 200 acumulamos o par na soma: soma = soma + par obtemos próximo par somando 2 ao par anterior par = par + 2 #include <iostream > using namespace std; main( ) { int SOMA, PAR; // inicialização das variáveis SOMA = 0; PAR = 2; while (PAR <= 200) { SOMA = SOMA + PAR; // soma dos pares PAR = PAR + 2; // incremento para o próximo par } // mostra o valor acumulado na soma cout << "A soma dos pares ate 200 eh " << SOMA << ".“ << endl; system (“PAUSE”); } Exemplo 3: // SOMA_PARES de um limite inferior até um limite superior #include <iostream> using namespace std; main() { int SOMA = 0, PAR, LIMSUP; cout << "digite o limite inferior e superior"<<endl; cin >> PAR >> LIMSUP; // enquanto (expressão ?) while (PAR <= LIMSUP) { SOMA = SOMA + PAR; // soma dos pares PAR = PAR + 2; // incremento para o próximo par } cout <<"A soma dos pares eh " << SOMA << "."<< endl; System (“PAUSE”); } COMANDO do-while Executa sentenças enquanto a condição for verdadeira. Condição é verificada depois do bloco. Exemplo 1: Mostrar na tela os números de 1 a 10. #include <iostream> using namespace std; Rastreamento (executando linha por linha) main ( ) { int numero = 1; do { cout << numero<<"\t"; numero = numero + 1; } while (numero <= 10); system(“pause”); } Exemplo 2: Código validação de dado de entrada: exemplo 0 a 10. #include <iostream> using namespace std; main ( ) { float NOTA; cout<< "Digite uma nota: "<< endl; do { cin >> NOTA; } while ((NOTA < 0) || (NOTA > 10)); system(“pause”); } podemos melhorar e pedir que digite novamente #include <iostream> using namespace std; main ( ) { float NOTA; cout<< "Digite uma nota: "<< endl; do { cin >> NOTA; if ( (NOTA <0) || (NOTA> 10) ) cout<<"nota invalida, digite novamente"<<endl; } while ((NOTA < 0) || (NOTA > 10)); system(“pause”); } Operadores de incremento: Exercício proposto EM SALA: Desenvolver um programa que lê a senha (letras e/ou números) e valida a mesma. AULA 11 Roteiro da 11 a aula Referência ao Programa: Elementos Técnicas de construção de algoritmos e programas ESTRUTURA DE REPETIÇÃO Objetivo: apresentar como vincular a repetição de blocos à condições; Quando utilizar cada uma das estruturas disponíveis COMANDO for Executa sentenças (comandos) enquanto a condição (expressão ou teste) for verdadeira. Faz a inicialização o teste e atualização num único comando Exemplo 1: Exemplo 2: Desenvolver um programa que tabula a temperatura em Graus Farenheit para Graus Celsius. C = 5/9*(F-32) FVaria de 50 a 150 de 10 em 10 #include <iostream> #include <iomanip> using namespace std; main() { float C; cout<<setiosflags(ios::fixed) // ponto decimal <<setiosflags(ios::showpoint) //sempre imprimir o ponto decimal <<setprecision(2); // imprimir com 2 casas decimais cout<<"\t"<<“Far”<<"\t\t "<<“Celsius”<<"\n\n"; for (int F=50 ; F<=150 ; F+=10) { C = 5.0/9*(F-32); cout<<"\t"<<F<<"\t\t "<<C<<"\n\n"; } system("PAUSE"); } Caso de Uso: Quando usar while, do-while ou for ??? while (expressão) { ... } – Não há variável contadora – Inicialização, teste ou atualização complexos – Informações da condição obtidas na execução do { ... } while (expressão); – Executar um bloco pelo menos uma vez – Só é possível avaliar a condição depois de executar – Informações da condição obtidas após execução for (inicialização; teste; reinicialização) { ... } – Há variável contadora de repetições – Inicialização, teste e atualização simples – Separa claramente as instruções de controle das instruções do bloco Por que usar o for ? Cabeçalho agrupa: – Inicialização – Condição – Atualização Separa: – Controle (lógica) de repetição – Código a ser repetido Exemplo: Desenvolver um programa que lê as notas de várias pessoas e determina a maior nota. #include <iostream> // PROCESSA MAIOR NOTA using namespace std; main( ) { float NOTA, MAIORNOTA; //estruturas de dados MAIORNOTA = -1; //leia e processe os dados de entrada ( primeira nota e quando parar de ler ) cout<< "(Para finalizar informe uma nota negativa) "<<endl; cout<< "Informe uma nota: "<<endl; cin>>NOTA; while ( NOTA >= 0 ) // repetir enquanto nota por positiva { if (NOTA > MAIORNOTA) MAIORNOTA = NOTA; cout<< "Informe outra nota: "; cin>>NOTA; } //exiba os resultados de saída cout<< "A maior nota encontrada foi: "<< MAIORNOTA<<endl; system("PAUSE"); } Desafio: Desenvolver um programa que lê as notas de várias pessoas e determina a maior nota bem como a quantidade de pessoas que tiraram essa nota. AULA 12 Reservado para semana de ciência e tecnologia. AULA 13 Roteiro da 13 a aula Referência ao Programa: Elementos Técnicas de construção de algoritmos e programas ESTRUTURA DE REPETIÇÃO Objetivo: apresentar estudo de casos (Calculo de series) Exemplo 1: Desenvolver um programa para calcular e mostrar o valor de pi dado pela sequencia abaixo com precisão 0,0001 e mostrar também quantos termos foram utilizados. QUAL ESTRUTURA USAR? Precisamos executar pelo menos uma vez Não sabemos a quantidade de termos PODEMOS USAR A ESTRUTURA do while // Prog para calcular Pi #include <iostream> using namespace std; main() { double PI =0 , T = 4 ; int D = 1, C = 1; do { //calculo do T e do PI if (C%2 == 0 ) PI = PI - T; // termo par else PI = PI + T; // termo impar D = D + 2; // próximo denom. T = 4.0/D; // próximo termo C = C + 1; // incrementa contador } while (PI < 3.1416) ; // repete o do enquanto PI menor que 3.1416 cout<<"O VALOR DE PI c/ PRECISAO 0.0001 EH "<<PI<<endl; cout<<"UTILIZANDO " << C << " TERMOS"; system("PAUSE"); } Exemplo 2: Desafio em sala: escrever o programa do exemplo 2 acima. Dicas Estrutura de repeticão calc T e S ?for usando D para controle (1<=D<=9) T= 1/pow (D,3)*SINAL O sinal do D= 1 (prim termo é + )SINAL=1 S soma dos termos iniciar S=0 Mudo o sinal do seg SINAL=SINAL*(-1); Repito até 5 termo D=9 sai da repetição PI pow (S*32 , 1.0/3) AULA 14 Roteiro da 14 a aula Referência ao Programa: Elementos Técnicas de construção de algoritmos e programas ESTRUTURA DE REPETIÇÃO Objetivo: apresentar estudo de casos Desenvolver um programa para ler : o sexo (1-feminino, 2-masculino) e a altura de um grupo de 50 pessoas. O programa deve calcular: • a altura média das mulheres e a altura média dos homens; • a maior e a menor altura do grupo, dizendo se a altura é de um homem ou de uma mulher. estrutura de repetição para : inicio • Entrar com os dados de altura e sexo (contar e parar até 50) • se mulher : acumular altura, conta mulher se altura > maior mulher guardar altura na maior mulher e se altura < menor mulher guardar altura na menor mulher • senão se homem: acumular altura, conta homem se altura > maior homem guardar altura no maior homem e se altura < menor homem guardar altura no menor homem senão invalidar entrada de sexo (decrementa e volta) fim Calcula e mostra: Média altura homem = alt acumulada homens / quat homens Média altura mulher = alt acumulada mulheres / quat mulheres Maior do grupo? se maior homem>maior mulher mostra a altura do mais alto que é homem senao mostra a altura do mais alto que é mulher se for igual mostra é homem e mulher o mai alto Menor do grupo? se menor homem < menor mulher ……… o mais baixo é h senao é mulher…… #include <iostream> using namespace std; main() { float ALTURA, MAXM = -1, MAXH = -1, MINM = 10,MINH = 10, MM = 0,MH = 0; int SEXO,CONT,CM = 0,CH = 0; for (CONT = 1; CONT<= 50 ; CONT++) { cout << "digite o "<<CONT<< " \xA7 SEXO: (1)F (2)M "; // entrar dados cin >> SEXO; cout << "DIGITE A "<< CONT << " \xA7 ALTURA: "; cin>>ALTURA; if (SEXO==1) { MM = MM + ALTURA; // teste sexo , acumula altura CM++; // conta mulher if (ALTURA >= MAXM ) // testa altura e guarda MAXM = ALTURA; if ( ALTURA <= MINM ) MINM = ALTURA; } else if (SEXO==2) { MH = MH + ALTURA; // teste sexo , acumula altura CH++; // conta homem if ( ALTURA >= MAXH ) // testa altura e guarda MAXH = ALTURA; if ( ALTURA <= MINH ) MINH = ALTURA; } else { cout<< "\nSEXO INVALIDO\n"; CONT--; } } if ( CM != 0 ) { MM = MM/CM; // calcula media de altura de mulher cout<<"\n A ALTURA media das MULHERES EH: "<< MM <<endl;} if( CH != 0 ) { MH = MH/CH; // calcula media de altura de homem cout<<"\n A ALTURA media dos HOMENS EH: "<< MH <<endl; } if ( MAXM > MAXH) // calcula maior do grupo cout<<"\n A MAIOR ALTURA : " << MAXM <<" m eh DE MULHER\n"; else cout<<"\n A MAIOR ALTURA : " << MAXH <<" DE HOMEM\n"; if (MAXM==MAXH) cout<<"\nA MAIOR ALTURA:" << MAXM <<" m eh DE HOMEM E DE MULHER\n"; if (MINM < MINH) cout<<"\nA MENOR ALTURA : " << MINM <<" m eh DE MULHER\n"; else cout<<"\nA MENOR ALTURA : " << MINH <<" DE HOMEM\n"; if (MINM == MINH) cout<<"\nA MAIOR ALTURA : " << MINM <<" m eh DE HOMEM E DE MULHER\n"; system("PAUSE"); } AULA 15 Roteiro da 15 a aula Referência ao Programa: Elementos Técnicas de construção de algoritmos e programas ESTRUTURA DE REPETIÇÃO Objetivo: apresentar estudo de casos Desenvolver um programa que : Lê: • o nome ou sigla das cidades (para X cidades) e o estado (GO, RS..); • o número de veículos de passeio, e o número de acidentes com vítima de 2006. Calcula e mostra: • o maior e menor índice de acidentes e que cidades; • a média de veículos de passeio; • a média de acidentes com vítimas entre as cidades do Rio Grande do Sul. #include <iostream> #include <string> //PARA MANIPULAR STRING using namespace std; int main() { string COD,STATE,CMAIOR,CMENOR; long CAR, ACI, MAIOR = -1, MENOR = 100000000, CRS = 0; float MEDIA = 0, MFATAL = 0; int CONT, X; cout<<"Digite a quantidade de cidades"<<endl; cin>>X; for (CONT =1;CONT <=X; CONT++) { cout<<"DIGITE A "<<CONT<< "\xA7 CIDADE"<<endl; cin>>COD; cout<<"DIGITE O "<<CONT<<"\xA7 ESTADO"<<endl; cin>>STATE; cout<<"NUMERO DE CARROS E ACIDENTES"<<endl; cin>>CAR>>ACI; if (ACI>MAIOR) { MAIOR = ACI; //copia o ACI para o MAIOR CMAIOR=COD; //copia o COD para o CMAIOR } if (ACI<MENOR) { MENOR = ACI; //copia o ACI para o MENOR CMENOR = COD; //copia o COD para o CMENOR } MEDIA = MEDIA + CAR; //acumula o n. carros em media if (STATE=="RS") { MFATAL = MFATAL + ACI; //acumula ACI de RS em MFATAL CRS = CRS + 1; //conta as cidades de RS } } MEDIA = MEDIA/X; cout<<MFATAL<<" "<<CRS<<endl; MFATAL = MFATAL/CRS; cout<<"O MAIOR INDICE eh "<<MAIOR<<" NA CIDADE "<<CMAIOR<<endl; cout<<"O MENOR INDICE eh "<<MENOR<<" NA CIDADE "<<CMENOR<<endl; cout<<"A MEDIA DE CARROS DE PASSEIO eh "<<MEDIA<<endl; cout<<"A MEDIA DE ACIDENTES FATAIS no RS eh "<<MFATAL<<endl; system("PAUSE"); } AULA 16 Roteiro da 16 a aula Referência ao Programa: Estrutura de Dados. Variáveis Compostas homogênias Objetivo: apresentar VETOR. Exemplo 1: Desenvolver um programa que Lê: • AS NOTAS DE UMA TURMA Calcula e mostra: • A MÉDIA DA TURMA; • QUANTIDADE DE ALUNOS CUJA NOTA > MÉDIA; • A MENOR NOTA; Solução com variáveis simples: Na repetição com variáveis simples a cada nota que é digitada , substitui a anterior, portanto todos os calculos que dependem de cada nota tem que ser em executados antes da entrada de uma nova nota. Por exemplo, para saber qual a maior, menor etc. Ou para implementar um novo cálculo não é possivel pois ja se perdeu a nota anterior. Solução com variáveis Composta: #include <iostream> using namespace std; main ( ) { int CONTA = 0 , i ,CDF ; float N[59], MEDIA , MENOR ; cout << "DIGITE A 1a NOTA: \n "; cin>>N[CONTA]; while (N[CONTA] != - 1) { MEDIA = MEDIA + N[CONTA] ; CONTA++; cout << "DIGITE A proxima NOTA (-1)para parar: \n "; cin >> N[CONTA]; } MEDIA = MEDIA / CONTA ; for ( i = 0 ; i < CONTA ; i++ ) { if ( N[ i ] > MEDIA) CDF++; if (N[ i ] < MENOR) MENOR = N[ i ]; } cout << "A MEDIA DA TURMA eh: “ << MEDIA <<endl; cout<<CDF<< " ALUNO(S)ESTA(O) ACIMA DA MEDIA DA TURMA\n"; cout<<MENOR<< " eh A NOTA DO PIOR ALUNO \n"; system("PAUSE"); } AULA 17 Roteiro da 17 a aula Referência ao Programa: Estrutura de Dados. Variáveis Compostas homogênias Objetivo: apresentar VETOR. Exemplo 1: SOLUÇÃO #include <iostream> using namespace std; main( ) { int VET[ 5 ] , i , N ; for ( i = 0 ; i <= 5 ; i ++ ) { cout << " DIGITE O "<< i + 1 <<" \xA7 numero \n"; cin>>VET[ i ]; } cout<<" DIGITE UM NUMERO: \n"; cin>>N; i = -1; do { i ++; } while ( ( VET[ i ] != N ) && ( i <= 5 ) ); if ( N == VET[ i ] ) cout<<"O No. "<< N <<" ESTA NA POS "<< i << endl; else cout<<"O No. "<< N <<" NAO FOI ENCONTRADO \n"; system("PAUSE"); } Exemplo 2: Modificar o programa do exemplo anterior PARA BUSCAR VÁRIOS NÚMEROS #include <iostream> using namespace std; main( ) { int VET[ 5 ] , i , N ; for ( i = 0 ; i <= 5 ; i ++ ) { cout << " DIGITE O "<< i + 1 <<" \xA7 numero \n"; cin>>VET[ i ]; } cout<<" DIGITE UM NUMERO: \n"; cin>>N; while (N!= -1) { // verificar vários números i = -1; do { i ++; } while ( ( VET[ i ] != N ) && ( i <= 5 ) ); if ( N == VET[ i ] ) cout<<"O No. "<< N <<" ESTA NA POS "<< i << endl; else cout<<"O No. "<< N <<" NAO FOI ENCONTRADO \n"; cout<<"DIGITE UM NUMERO: ou (-1) pra SAIR \n"; cin >> N; } system("PAUSE"); } Exemplo 3: #include <iostream> using namespace std; main( ) { int i ; char NOME[15]; cout<<"DIGITE UM NOME:\n"; cin>>NOME; If (NOME[ i ]== 'A') { cout<<"ACHEI \n"; cout<<"A LETRA ("<<'A'<<") Eh a "<<i+1<<"\xA7 LETRA"<<endl; } else cout<<"NaO ACHEI"; system("PAUSE"); } AULA 18 Avaliação N2 AULA 19 Prova substitutiva AULA 19 entrega dos resultados.
Compartilhar