Você está na página 1de 51

Prof.

MSc Fabricio Schlag


Linguagem de programao (C++) AULA 01
Roteiro da 1a aula Objetivo: Apresentao da disciplina Atividades: Apresentao e Distribuio do Programa. Discusso preliminar dos contedos e Plano de Avaliaes. Apresentao do conceito de algoritmo

Algoritmo
Algoritmo: a descrio de um conjunto de comandos que, obedecidos, resultam numa sucesso finita de aes. Exemplo: montar um algoritmo para um criana de 5 anos acender um palito de fsforo 1. Pegue o objeto (caixa de fsforo) 2. Segure firme o lado preto da cx de fsforo 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. 2. 3. 4. 5. 6. Pegue o objeto (caixa de fsforo) Segure firme o lado preto da cx de fsforo Empurre para abrir e ver um palito Pegue um palito FECHE A CAIXA Friquicione a extremidade grossa na parte preta

O detalhamento deve se completo para que as instrues tenham o efeito desejado.

AULA 02
Roteiro da 2a aula Referncia ao Programa: Conceitos Bsicos Conceitos de Hardware/Software; Estrutura de um computador digital; Representao e armazenamento da informao;

Histrico, evoluo e perspectivas da computao; Arquitetura de um Sistema de computao : Memria, Unidade Central de Processamento, Entrada e Sada, e Perifricos.

Objetivo: apresentar os conceitos bsicos de informtica.

Conceitos Bsicos
Informtica - infor + mtica. o tratamento da informao de forma automtica Dado - tudo aquilo que fornecido ao computador de forma bruta Informao - o resultado obtido do computador aps o processamento Processamento de Dados - um conjunto de operaes que aplicadas a dados nos fornece uma informao Computador - uma mquina que processa dados de forma automtica HARDWARE - componente, ou conjunto de componentes fsicos internos e externos de um computador ou de seus perifricos. Hardware - a parte fsica 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 informao em um computador. Pode ser 0 (desligado) ou 1 (ligado) Byte - conjunto de 8 BITs. unidade bsica de medida da memria em um computador.

OPERAES BSICAS DE UM COMPUTADOR

Exemplo: Folha de Pagamento

Entrada = nome, salrio, horas extras, etc. de cada funcionrio Processamento = clculo do salrio Sada = Contracheques e outros relatrios

Sistema de Computador
O computador um sistema de hardware, uma combinao de componentes inter-relacionados que desempenham as funes bsicas do sistema: entrada, processamento, sada, armazenamento e controle.

Memria Principal - formada por 2 memrias RAM e ROM ROM - memria somente para leitura. pr-gravada pelo fabricante. No voltil RAM - memria de acesso aleatrio. Armazena as informaes em processamento enquanto o computador estiver ligado. voltil. Memria Auxiliar - unidades que armazenam programas e dados para posterior utilizao. Ex: pen drive Perifricos de Entrada - unidades para entrada de dados no computador. Ex: teclado Perifricos de Sada - unidades para sada de dados do computador. Ex: monitor de vdeo

ARQUITETURA DE UM COMPUTADOR

DISCO RGIDO ou HD

disco rgido interno ao computador com grande capacidade de armazenamento de dados os tamanhos mais comuns so: 10, 16, 20 Gigabytes ou mais armazena os programas e arquivos a serem utilizados pelo usurio

Microprocessador- CPU (unidade central de processamento. quem l e executa todas as informaes dos programas.

Chip de Memria:

VELOCIDADE DE PROCESSAMENTO Clock - velocidade do micro-processador. medido em MHz (1.000.000 de ciclos por segundo) Evoluo do Clock : PC-XT AT-286 AT-386 SX 8 MHz 25 MHz 33 MHz

AT-386 DX AT-486 SX AT-486 DX AT-486 DX2 AT-486 DX4 Pentium Pentium MMX Pentium II Pentium III Pentium V Intel Corel 2 Celeron (R)

40 MHz 33 MHz 50 MHz 66 MHz 100 MHz 100-133-150-166 MHz 150-166-200-300 MHz 300-400-450 MHz 1200 MHz ou mais 1300 MHz ou mais 1,67 GHz 1,80 GHz

SOFTWARE - a parte lgica de um sistema de computador, so programas, instrues que a mquina (hardware) pode executar. Software - so os programas e aplicativos que permitem o funcionamento do computador Exemplos de Softwares Windows XP, Windows Vista, Word, Excel, PowerPoint, Freelance, Access, Translator, Netscape, Wingate, Auto Cad, NT, Unix etc .... Sistema Operacional - responsvel pela comunicao homem-computador. Ex: DOS e Windows Linguagens de Programao - utilizadas por programadores para desenvolver programas aplicativos. Ex: C++, Fox Pro, Delphi, Java, etc Programas Utilitrios - facilitam a manuteno de discos e arquivos. Ex: Compactador, Backup, etc. TIPOS DE SOFTWARE Programas Aplicativos - desenvolvidos em certa linguagem de programao para fins especficos. Exemplos: Editor de texto, Planilha eletrnica, Controle de estoque. Banco de dados Editorao eletrnica e Programas Grficos Navegadores (Browsers): mostra as pginas da internet. Ex. Internet Explorer, Navigator

LINGUAGENS DE PROGRAMAO Linguagem de Mquina ou de Baixo Nvel - a linguagem compreendida internamente pelo computador. Suas instrues so escritas em cdigos binrios Linguagem Montadora - linguagem intermediria entre a linguagem de mquina e a linguagem de alto nvel. escrita atravs de cdigos simblicos utilizando nmeros, letras e smbolos. Ex: Assembler Linguagem de Programao ou Alto Nvel - a linguagem utilizada pelo usurio para escrever programas de computador. Os programas so escritos utilizando palavras da lngua inglesa. Ex: Pascal e C

Ling.de Maquina Baixo


LINGUAGENS DE PROGRAMAO

Nvel Alto

Ling.de programao

Antes do computador executar os programas eles devem antes ser traduzidos para a linguagem de mquina. Esta traduo feita atravs um software denominado compilador. A operao de traduo do programa para linguagem de mquina chamada compilao

Ling.de programao

compilao

Ling.de Mquina

ITENS FUNDAMENTAIS Algortmo: a descrio de um conjunto de comandos que, obedecidos, resultam numa sucesso finita de aes. Comandos: determina as aes a serem executadas pelo destinatrio. Estrutura: determina a ordem e as condies dos comandos que devem ser executados. Estruturas de Controle: Sequencial: os comandos so executados um aps o outro, na mesma ordem em que aparecem escritos, se no houver indicaes ao contrrio. Condicional: provoca ou no uma ao dependendo se a condio for falsa ou verdadeira Repetio: repete os comandos e estruturas de comando at que encontra uma condio para que interrompa a repetio.

ALGORITMO: Exemplo: Desenvolva os passos de um programa que converte polegadas para centmetros. 1 inch 2.54 cm CM

Soluo: Passos para converter POL

1. Alocar duas variveis POL, CM numricas 2. Entrar POL {medida em polegadas}

3. Calcular CM = 2.54 * CM 4. Mostrar CM

EXERCCIOS: 1- Desenvolva os passos de um programa para calcular a rea de um retngulo Soluo: 1. Alocar trs variveis B, H e AREA numricas 2. Entrar B, H {valor em centmetros}

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.

Soluo: 1. Alocar duas variveis D, R numricas 2. Entrar D {valor em dollares}

3. Calcular R = 1,90 * D 4. Mostrar R

AULA 03
Roteiro da 3a aula Referncia ao Programa: Elementos bsicos do algoritmo e da programao Constantes; variveis, expresses aritmticas, lgicas e literais; comandos de atribuio, entrada e sada; Objetivo: apresentar os conceitos itens fundamentais da linguagem C++

ITENS FUNDAMENTAIS Programando em C++ 1. Constantes: So valores que so mantidos fixos pelo compilador. Exemplos de Constantes b \n \0 2 32000 -130 100000 -467 100 -30 50000 35678 0.0 23.7 -12.3e-10

Tipo de Dado char int long int short int unsigned int float 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.141

2.

Variveis:

So valores que podem ser alterados durante o programa.

identificada por um nome ou identificador. Deve comear com uma letra ou sublinhado ( _ ) e os caracteres subsequentes devem ser letras, nmeros ou sublinhado ( _ ). No mximo 32 caracteres. O C tem 5 tipos bsicos de variveis: char, int, float, void, double Modificadores: long, short, signed, unsigned Os Tipos do C
Tipo Num de bits 8 8 8 16 16 16 16 16 16 32 32 32 32 64 80 Intervalo Inicio -128 0 -128 -32.768 0 -32.768 -32.768 0 -32.768 -2.147.483.648 -2.147.483.648 0 3,4E-38 1,7E-308 3,4E-4932 Fim 127 255 127 32.767 65.535 32.767 32.767 65.535 32.767 2.147.483.647 2.147.483.647 4.294.967.295 3.4E+38 1,7E+308 3,4E+4932

char unsigned char signed char int unsigned int signed int short int unsigned short int signed short int long int signed long int unsigned long int float double long double

Declarao de variveis tipo_da_varivel

lista_de_variveis;

EXEMPLOS: int dias; float salario, media, altura, n1, n2; char ch, letra, nome[20]; long count; float pi = 3.14159; double cosseno;

Variveis do mesmo tipo devem ser separadas por vrgula ( , ). Todo comando finalizado com ponto-vrgula ( ; )

3.

COMANDO DE ATRIBUIO ( = )

Atribui um valor a uma varivel. Identificador_da_varivel = valor, expresso aritmtica, funo Exemplos: dias = 260; salario = 380.00; media = 0.4 * n1 + 0.6 * n2; letra = m; cosseno = cos(2*pi); count = (dias + 180)/2; Operadores Aritmticos e de Atribuio Operador + * / % ++ -Ao Soma (inteira e ponto flutuante) Subtrao ou Troca de sinal (inteira e ponto flutuante) Multiplicao (inteira e ponto flutuante) Diviso (inteira e ponto flutuante) Resto de diviso (de inteiros) Incremento (inteiro e ponto flutuante) Decremento (inteiro e ponto flutuante)

x++; x--;

so equivalentes a

x = x + 1; x = x 1

Expresso Original x = x + k; x = x - k; x = x * k; x = x / k; Exemplo:


int a = 17, b = 3; int x, y; float Z = 17. , z1, z2; x = a / b; y = a % b; Z1 = z / b; Z2 = a / b;

Expresso Equivalente x + = k; x - = k; x * = k; x / = k;

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; }
D efine um a funo de nom e m ain presente em to d os os p ro g ram as em C Q ue c ham ada q u and o o p ro gram a for execu tad o . As { } de lim itam o seu con ted o

Diz ao compilador que ele deve incluir o cabealho <iostream>

obs.:Diretivas: para auxiliar o desenvolvimento do programa fonte ( no pertencem ling C++} #include <cstdlib> Diretiva para permitir o uso da funo system ( ) no Windows (no necessrio nos compiladores mais novos) // diretiva para dev c++ Windows comentrio (quando usar compilador no Windows) Arquivo que contm declaraes necessrias para

#include <iostream> // diretiva do pr processador entrada e sada de dados (cin, cout)

using namespace std; /*diretiva using*/ necessrio 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 funo main ( ) que retorne zero para quem a chamou. (no necessrio nos compiladores mais novos)

4. Ex:

Comando de Sada ( cout ) cout << Primeiro Programa;

Objeto cout prdefinido na diretiva <iostream> com o padro da classe de leitura e impresso declarado no namespace std O operador << chamado de operador de insero e envia a mensagem Primeiro

Programa a ser impressa para a sada padro (vdeo) Cdigos especiais \ (com barra invertida)

cout << Primeiro Programa \n; cout << Primeiro Programa << endl;
Cdigos especiais \n \t \a \r \0 Nova linha Tabulao beep CR volta o cursor para o inicio da linha Zero (Null) Significado

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 maisculo difere do minsculo variveis diferentes Soma, SOMA, SoMa, sOmA cin, cout comandos (letras minsculas)

Usando COUT Exemplo 1 #include <iostream> using namespace std; main( ) { cout << "Exemplo de 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 >> varivel 1>> varivel 2..; // Declara a varivel item do tipo char com 20 caracteres e a varivel letra tambm do tipo char char item[20], letra; int num_pesca; // Declara a varivel num_pesca do tipo inteiro float custo; // Declara a varivel custo do tipo float cout << digite: o nome, a letra, custo, qtde pesca; cin >> item >> letra >> num_pesca >> custo;
item num_pesca custo letra

pedro 5 7.00 b

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); } Exemplo 2 #include <iostream> using namespace std; main () { int numero; // O nmero lido no teclado cout << "Digite seu nmero favorito e pressione Enter: "; cin >> numero; cout << "Seu nmero favorito " << numero << endl; system(PAUSE); }

Exemplo 3 #include <iostream> using namespace std; main () { int primeiro, segundo; // Nmeros 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); }

6.

Exerccio: feito em classe para implementao no lab.

Desenvolver um programa para transformar dias em anos.

1. 2. 3. 4.

Declarar as variveis Ler a quantidade de dias Calcular a correspondncia de dias em anos (1 ano =365,25 dias) Exibir o valor calculado

AULA 04
Roteiro da 4a aula Referncia ao Programa: Elementos bsicos do algoritmo e da programao Estrutura de fluxo sequencial Objetivo: apresentar a estrutura sequencial da linguagem C++

Estrutura Sequencial Exerccios resolvidos em sala

1. Maria uma criana muito econmica e tm guardado no seu cofre moedas de dez e cinco centavos. O cofre est to cheio de moedas que ela resolveu trocar com sua me 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; // Clculo total em centavos CENTAVOS =DEZ * 10 + CINCO * 5; // Clculo da quantidade de notas de um real REAL = CENTAVOS / 100; // quociente entre CENTAVOS e 100

// Clculo dos centavos que sobraram no cofre SOBRA = CENTAVOS % 100; //resto entre CENTAVOS e 100 // Exibe os valores das variveis 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, necessrios 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 cronmetro (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 sada cout <<TEMPO<< " segundos so equivalentes a "<< HORAS<< " horas, "; cout<< MINUTOS<< " minutos e "<< SEGUNDOS<< " segundos"<<endl; system("PAUSE"); }

Desafio para lab: Entrar com horrio do incio da viagem em horas, minutos e segundos (19h20min00seg) e horrio do fim da viagem (22h30mim10seg). Calcular e exibir a durao da viagem em horas, minutos e segundos. 3. Dado um nmero de trs dgitos, desenvolver um algoritmo para invert-lo e armazenando-o em uma outra varivel. // 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 nmero INVERTIDO = UNIDADE *100 + DEZENA *10 + CENTENA; //exiba os resultados de sada cout << "o nmero invertido eh "<< INVERTIDO <<endl; system("PAUSE"); }

4. Fazer um programa para trocar, entre si, os valores das variveis A e B. Usando uma varivel 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 variveis AUX = A; A=B; B = AUX; //exiba os resultados de sada 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 variveis entre si sem usar varivel auxiliar

AULA 05
Roteiro da 5a aula Referncia ao Programa: Elementos Tcnicas de construo 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 tm a seguinte estrutura: main() { declaraes instruo1 instruo2 ... instruoN } O caso geral da instruo if-else : se a (expresso) for verdadeira executa a instruo 1 seno

executa a instruo 2
if ( expresso ) instruo1 ; else instruo2 ; O comando else no obrigatrio:
if ( expresso ) instruo1 ;

Expresses Logicas: a expresso cujo operadores so lgicos e cujos operandos so relaes, constantes e/ou variveis do tipo lgico. Relaes: X + Y = Z o resultado ser verdadeiro ou falso. Smbolo < > <= >= == != Significado Menor Maior menor ou igual maior ou igual Igual Diferente

Operadores Lgicos
e --- conjuno ( verdadeira se e somente se ambas as proposies so verdadeiras). ou --- disjuno ( verdadeira se e somente se, pelos menos uma delas fOU so verdadeiras). no --- negao ( negao da expresso)

Operador

Descrio

Exemplo

Resultado
FALSO VERDADEIRO VERDADEIRO VERDADEIRO FALSO VERDADEIRO

E
&& && || || ! ! E E OU OU NO NO (5 > 1) && (3>10) (2 >1) && (10 > 9) (3> 1) || (10 > 11) (4> 2) || (10 > 5) !(5>1) !(2 > 3)

Exemplo de Estrutura Condicional Simples if ( expresso ) instruo1 ; Desenvolver um programa para entrar com um preo do carro e calcular o preo final de acordo com as opes do usurio com os opcionais de vidro eltrico, ar condicionado, trava central, pintura metlica e ar condicionado. // 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 Direo Hidrulica (S/N) , (s/n)? "; cin >> RESPDH; cout << "Deseja Pintura Metlica (S/N) , (s/n)? "; cin >> RESPPM; cout << "Deseja Vidros Eltricos (S/N) , (s/n)? "; cin >> RESPVE; cout << "Deseja Trava Central (S/N) , (s/n)? "; cin >> RESPTC; cout << "Qual o preo 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 sada cout<< "R$ "<< PRECOFINAL<< " ser o preo final do carro.\n"; system("PAUSE");

Exemplo de Estrutura Condicional Composta

if ( expresso ) instruo1 ; else instruo2 ; Desenvolver um programa para entrar com dois nmeros e exibir o maior entre eles. /*Este programa entra com dois nmeros distintos e exibi a mensagem de qual nmero maior. Programa MAIOR*/ #include <iostream> using namespace std; main() { // define dois inteiros int X , Y ; //entra com dois nmeros inteiros cout << Digite dois nmeros inteiros: ; cin >>X>>Y; //exibe uma mensagem dizendo qual nmero 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 nmero par ou mpar #include <iostream> using namespace std; main() { int N; cout <<Digite um nmero inteiro: "; cin >> N ; if ( N % 2 == 0 ) cout<<N<< par\n"; else cout<< N<<" eh mpar\n"; system (PAUSE);

Erros frequentes
Provavelmente aquilo que queriam fazer era: if(...) { instruo1; instruo2;

if(...) instruo1; instruo2;

}
if( expresso ) { instruo1 instruo2 instruo3 instruo4 } else {
SE EXISTIR MAIS DE UMA INSTRUO PARA SER EXECUTADA DENTRO DO COMANDO if OU DO

else

DEVEMOS COLOCAR AS CHAVES { }

instruo5 instruo6 } instruo7

#include <iostream> using namespace std; main() { char HOJE[10]; cout<< Que dia hoje(DOMINGO, SEGUNDA,TERCA..\n"; cin>>HOJE; if ((HOJE == SABADO) || ( HOJE == DOMINGO)) { cout<< "Final-de-semana\n"; } else { cout<< " Vai trabalhar ou estudar\n"); } system (PAUSE); } 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<<"Incrvel, voc passou com mrito.\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 <<"Incrvel, voc passou com mrito.\n"; } else if (nota >= 5.0) else { system (PAUSE); } { cout<<Voc passou\n"; cout<<Que pena, voc reprovou.\n"; } }

AULA 06 e 07
Roteiro da 6a e 7a aulas Referncia ao Programa: Elementos Tcnicas de construo de algoritmos e programas Estruturas de controle de fluxo condicionais Objetivo: apresentar a estrutura condicional CONTROLE DE FLUXO

ESTRUTURA CONDICIONAL EXERCCIO 1

#include <math> #include <iostream> using namespace std; main() { // define dois inteiros int N, R; //entra com um nmero inteiro cout<<Digite um nmero 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); }

EXERCCIO 2 Uma locadora tem as seguintes regra para aluguel de fitas: seg, ter e qua (2,3 e 4) um desconto de 30% no preo normal; dom(1) sab (5,6 e 7) um acrscimo de 20% no preo normal. Aluguel de filmes Comuns: preo normal, Lanamentos: acrscimo de 13% no preo normal preo normal; qui, sex e

Desenvolver um programa para ler o preo normal em R$, o dia a ser locado (1 a 7) a categoria do filme (C ou L). Calcular e imprimir o preo final do aluguel. Considerando que o cliente s pode alugar uma fita por 1 dia. QUAL TESTE PRIMEIRO? DIA = DOMINGO No 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; // clculo do preo 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"); } EXERCCIO 3: Clculo da mdia de um aluno Escrever um programa que l o numero de identificao e as 3 notas obtidas por um aluno e calcula a mdia de aproveitamento, usando a frmula: MA = (NOTA1 + NOTA2 * 2 + NOTA3 * 3) / 6 A atribuio de conceito obedece tabela abaixo; O programa deve escrever o nmero do aluno, a mdia de aproveitamento, o conceito correspondente e a mensagem: Aprovado se o conceito for A, B ou C e Reprovado se D ou E.

#include <iostream > #include <string> using namespace std; int 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"); }

AULA 08
AVALIAO PRELEO

AULA 09
Roteiro da 9a aula Referncia ao Programa: Elementos Tcnicas de construo 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': sentenas de instrues para a opo a ; break; case 'b': sentenas de instrues para a opo b ; break; case 'c': sentenas de instrues para a opo c ; break; default: sentenas de instrues para entrada errada ; break; }

EXEMPLO 1: Escrever um programa que leia dois nmeros inteiros e a operao aritmtica. Calcule e mostre o resultado. #include <iostream> using namespace std; main( ) {

int a,b,34OPCAO; cout << DIGITE UMA OPCAO\n; cout << (1) Somar (2) Multiplicar (3) Diminuir (4) Dividir \n; cin >> OPCAO34; 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: 34F (b==0) { cout<<\n\n\t VOCE NO PODE DIVIDIR POR ZERO. 0 \n\n; break; } else { cout<<DIVISAO = << a/b; break; } defaut: cout<<opcao invalida; break; } system(PAUSE); }
EXEMPLO 2: Escrever um programa que leia 3 notas dos alunos e o tipo de mdia (aritmtica, ponderada ou harmnica. 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; } defaut: cout<<"opcao invalida"; break; } system("PAUSE"); }

AULA 10
Roteiro da 10a aula Referncia ao Programa: Elementos Tcnicas de construo de algoritmos e programas ESTRUTURA DE REPETIO Objetivo: apresentar como vincular a repetio de blocos condies; Quando utilizar cada uma das estruturas disponveis

COMANDO while
Executa sentenas (comandos) enquanto a condio for verdadeira. Condio (expresso ou teste) verificada antes do bloco de comandos.

Exemplo 1: Mostrar na tela os nmeros de 1 a 10. #include <iostream> using namespace std; main ( ) { int numero = 1; while (numero <= 10) { cout << numero<<"\t"; numero = numero + 1; } system(pause); } Exemplo 2: Calcular a soma dos nmeros pares de 2 at 200 Soluo: Iniciar o primeiro par = 2 e a soma= 0 Repetir enquanto o par <= 200 acumulamos o par na soma: soma = soma + par Rastreamento (executando linha por linha)

obtemos prximo par somando 2 ao par anterior par = par + 2 #include <iostream > using namespace std; main( ) { int SOMA, PAR; // inicializao das variveis SOMA = 0; PAR = 2; while (PAR <= 200) { SOMA = SOMA + PAR; // soma dos pares PAR = PAR + 2; // incremento para o prximo 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 (expresso ?) while (PAR <= LIMSUP) { SOMA = SOMA + PAR; // soma dos pares

PAR = PAR + 2; // incremento para o prximo par } cout <<"A soma dos pares eh " << SOMA << "."<< endl; System (PAUSE); }

COMANDO do-while
Executa sentenas enquanto a condio for verdadeira. Condio verificada depois do bloco.

Exemplo 1: Mostrar na tela os nmeros 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: Cdigo validao 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:

Exerccio proposto: Desenvolver um programa que l a senha (letras e/ou nmeros) e valida a mesma.

AULA 11
Roteiro da 11a aula Referncia ao Programa: Elementos Tcnicas de construo de algoritmos e programas ESTRUTURA DE REPETIO Objetivo: apresentar como vincular a repetio de blocos condies; Quando utilizar cada uma das estruturas disponveis

COMANDO for

Executa sentenas (comandos) enquanto a condio (expresso ou teste) for verdadeira. Faz a inicializao o teste e atualizao 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) F Varia 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 (expresso) { ... } No h varivel contadora Inicializao, teste ou atualizao complexos Informaes da condio obtidas na execuo

do { ... } while (expresso);

Executar um bloco pelo menos uma vez S possvel avaliar a condio depois de executar Informaes da condio obtidas aps execuo for (inicializao; teste; reinicializao) { ... } H varivel contadora de repeties Inicializao, teste e atualizao simples Separa claramente as instrues de controle das instrues do bloco Por que usar o for ? Cabealho agrupa: Inicializao Condio Atualizao Separa: Controle (lgica) de repetio Cdigo a ser repetido

Exemplo: Desenvolver um programa que l as notas de vrias 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 sada cout<< "A maior nota encontrada foi: "<< MAIORNOTA<<endl; system("PAUSE"); Desafio:
Desenvolver um programa que l as notas de vrias pessoas e determina a maior nota bem como a quantidade de pessoas que tiraram essa nota.

AULA 12
Reservado para semana de cidadania / cincia e tecnologia.

AULA 13 e 14

Roteiro da 13a e 14a aulas Referncia ao Programa: Elementos Tcnicas de construo de algoritmos e programas ESTRUTURA DE REPETIO 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 preciso 0,0001 e mostrar tambm quantos termos foram utilizados.

QUAL ESTRUTURA USAR? Precisamos executar pelo menos uma vez No 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; // prximo denom.

T = 4.0/D; C = C + 1;

// prximo termo // 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 repetico 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 repetio PI pow (S*32 , 1.0/3)

AULA 15
Avaliao N2

AULA 16
Roteiro da 16a aula Referncia ao Programa: Estrutura de Dados. Variveis Compostas homognias Objetivo: apresentar VETOR. Exemplo 1: Desenvolver um programa que L: AS NOTAS DE UMA TURMA

Calcula e mostra: A MDIA DA TURMA; QUANTIDADE DE ALUNOS CUJA NOTA > MDIA; A MENOR NOTA; Soluo com variveis simples:

Na repetio com variveis 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 clculo no possivel pois ja se perdeu a nota anterior.

Soluo com variveis 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"); }

Exemplo 2:

SOLUO #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 3: Modificar o programa do exemplo anterior PARA BUSCAR VRIOS NMEROS #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) { 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"); } // verificar vrios nmeros

Exemplo 4:

#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 17
Prova substitutiva e/ou entrega dos resultados.