Você está na página 1de 63

Disciplina

Informtica e Computao
CMP 1060









Prof. MSc Mrio Oliveira Orsi
02/02/2013



AULA 01
Roteiro da 1
a
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. Friccione a extremidade grossa do palito na parte preta da caixa.

Verifique que est faltando um passo na sequncia anterior uma vez que os palitos iriam
cair:

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. FECHE A CAIXA;
6. Friccione a extremidade grossa do palito na parte preta da caixa;

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
















AULA 02
Roteiro da 2
a
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



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


Chip de Memria:







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



VELOCIDADE DE PROCESSAMENTO
Clock - velocidade do micro-processador. medido em MHz (1.000.000 de ciclos por segundo)
Evoluo 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 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, Excell, 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
Ling.de
programao
Baixo Alto
Nvel

LINGUAGENS 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





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
Soluo: Passos para converter POL CM
1. Alocar duas variveis POL, CM numricas
2. Entrar POL {medida em polegadas}
3. Calcular CM = 2.54 * CM
4. Mostrar CM

Ling.de
programao
Ling.de
Mquina
compilao


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 3
a
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++
TIPOS DE DADOS do C
O C++ possui 5 tipos bsicos: 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. Comandos: determinam as aes ou instruoes a serem executadas pelo programa; Podem ser
descritos em uma ou mais linhas. OBS.: O comando ou instruo s finalizado
com um sinal de ; (ponto e Vrgula)

Exemplos comandos:
Definio ou Declarao de constantes.
Definio ou Declarao de Variveis.
Clculos (expresses matemticas etc).
Imprimir ou mostrar na sada padro (na tela de vdeo), monitor ou display: caracteres,
frases ou resultados.
Instrues para o sistema operacional.

2. Constantes: So valores que so 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 PUC
#define pi 3.14159
#define minimo 380
Exemplos Constantes Locais
const int a;
const float pi = 3.14;

3. Variveis:

So valores que podem ser alterados durante o programa.
Representa um espao de memria reservado para armazenar um determinado tipo de dado.
Este espao deve ser identificado por um nome (identificador) para se referir ao seu contedo.
Para definir este nome ou identificador devemos:
Comear com uma letra ou sublinhado ( _ ) e os caracteres subsequentes devem ser
letras, nmeros ou sublinhado ( _ ).
No mximo 32 caracteres.
EXEMPLOS: _SALDO_1A
DOLAR
A_REA
Declarao de variveis
tipo_da_varivel lista_de_variveis;
um instruo que:
Define no mnimo um nome (num1) e tipo (int) com o qual podemos acessar o
contedo da varivel.
Reserva a quantidade necessria para armazenar o tipo definido.

EXEMPLOS de declarao ou definio de variveis:
int dias ; // declara a varivel dias do tipo inteiro
/* as variveis do mesmo tipo declaradas de uma vez s (na mesma linha) devem ser
separadas por vrgula ( , ) */
float salario, media, altura, n1, n2;
char ch, letra, nome[20] ;
long count ;
float pi = 3.14159 ;
double cosseno ;
4. COMANDO DE ATRIBUIO ( = )

Operao ou COMANDO de ATRIBUIO: representado pelo sinal = que significa que o valor ou expresso
da direita atribudo varivel da esquerda.
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;
Variveis do mesmo tipo
devem ser separadas por
vrgula
Todo comando finalizado
com ponto-vrgula ( ; )

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 Expresso 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; DIVISO INTEIRA
y = a % b; RESTO DE DIVISO INTEIRA
Z1 = z / b DIVISO 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;
}
#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)
#include <iostream> // diretiva do pr processador Arquivo que contm declaraes necessrias para
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)
Comando de Sada ( cout ) : Imprimir ou mostrar na sada padro (na tela de vdeo), monitor
ou display: caracteres, frases ou resultados.
Objeto cout prdefinido na diretiva <iostream> com o padro da classe de leitura e
impresso declarado no namespace std
Ex: cout << Primeiro Programa;
O operador << chamado de operador de insero e envia a mensagem frase
Primeiro Programa a ser impressa para a sada padro (vdeo)
Define uma funo de
nome main
presente em todos
os programas em C
Que chamada
quando o programa
for executado.
As { } delimitam o
seu contedo
Diz ao compilador que ele
deve incluir o cabealho
<iostream> os arquivos
que contm os comandos
de entrada e sada.


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



Usando COUT

Exemplo 1
#include <iostream>
using namespace std;
main( )
Cdigos especiais Significado
\n

\t

\a

\r

\0

Nova linha
Tabulao
beep
CR volta o cursor para o inicio da linha
Zero (Null)

{
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;
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 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);
}



Diviso int / int a diviso de DOIS NUMEROS INTEIROS retorna um
NUMERO INTEIRO (a parte inteira) mesmo que o resultado da diviso seja
fracionrio.
#include <iostream>
using namespace std;
main ( )
{
int num;
float f;
num=10;
f = num / 7;
cout << \n << f <<\n;
system("PAUSE");
}
Em uma diviso para que o resultado fracionrio seja mostrado NECESSRIO que
pelo menos um dos nmeros seja do tipo fracionrio float ou usamos os:
CASTS (MODELADORES)
Um modelador aplicado a uma expresso. Ele fora a mesma a ser de um tipo especificado.
Sua forma geral : (tipo)expresso
#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. Exerccio: feito em classe para implementao no lab.
Desenvolver um programa para transformar dias em anos.
1. Declarar as variveis
2. Ler a quantidade de dias
3. Calcular a correspondncia de dias em anos (1 ano =365,25 dias)
4. Exibir o valor calculado
Soluo
#include <iostream>
using namespace std;
main ( )
{
/* Declarao de Variveis */
int dias;
float anos;
/* Entrada do valor em dias */
cout<<"Entre com o numero de dias: ";
cin>>dias;
/* Clculo da converso 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
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 5
a
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
Instruo 1
Instruo 2
...
Instruo N
}
O caso geral da instruo if - else: o if quer dizer: se a (expresso) for verdadeira
executa a instruo 1 e o else quer dizer seno executa a instruo 2

if ( expresso )
instruo 1 ;
else
instruo 2 ;
O comando else no obrigatrio, ou seja pode no existir, neste caso o if = se executa apenas a
instruo 1 se a (expresso) for verdadeira e continua a execuo na sequencia
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 X>Y X*Y <= 1
o resultado ser verdadeiro ou falso.
// este ponto e vrgula define o termino da instruo 1
executada somente se a (expresso) for verdadeira

// este ponto e vrgula define o termino da instruo 2
executada somente se a (expresso) for falsa


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, pelo menos uma delas verdadeira).
no --- negao ( negao da expresso)


E






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.



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

Resultado Exemplo Descrio Operador
FALSO
VERDADEIRO
VERDADEIRO
VERDADEIRO
FALSO
VERDADEIRO

// programa PRECOCARRO
#include <iostream.>
using namespace std;
main() {
char RESPAC, RESPDH, RESPPM, RESPVE, RESPTC;
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






if (expresso )
{
instruo1
instruo2
}
else
{
Instruo3
Instruo4
}
instruo7
SE EXISTIR MAIS DE
UMA INSTRUO
PARA SER
EXECUTADA DENTRO
DO COMANDO if OU
DO else
DEVEMOS COLOCAR
AS CHAVES {
}
if (expresso)
instruo1 ;
instruo2 ;
// a instruo1 executada somente se
a expresso for verdadeira, mas a
instruo2 sempre ser executada,

Provavelmente aquilo que queriam fazer
era:
if (expresso) { chave abrindo
instruo1 ;
instruo2 ;
} chave fechando
// executa a intruo1 e instruo2
se a expresso for verdadeira

Nos exemplos a seguir evidenciada a necessidade de cada tipo de estrutura condicional
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)
{
cout<<Voc passou\n";
}
else
{
cout<<Que pena, voc reprovou.\n";
}
system (PAUSE);
}
Desafio para laboratrio: Modificar o programa do exemplo PRECOCARRO para que um desconto de 12% no
preo final do carro seja concedido se forem adquiridos todos os acessrios.


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

ESTRUTURA CONDICIONAL
EXERCCIO 1








#include <cmath>
#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:
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. 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. A atribuio 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") ;
}


EXERCCIO 3: Dado quatro nmeros, desenvolver um programa para somar os trs 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 if ((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 sada
cout<< "A soma dos 3 maiores eh "<< SOMA3 << endl;
system("PAUSE");
}
Exerccio para avaliao em sala e implementao no laboratrio:
Dado quatro nmeros, desenvolver um programa para somar os trs MENORES.
// programa SOMA 3 MENORES
#include <iostream>
using namespace std;
main( )
{


AULA 07
Roteiro da 7
a
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
EXERCCIO 1
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) preo normal; qui, sex e
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
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 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 nmero de dias, o nmero de quilmetros rodados e calcula e
escreve o valor do aluguel a ser pago, o valor do desconto, o nmero 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 AVALIAO PRELEO
AULA 09
Roteiro da 9
a
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, 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 NO 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 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;
}
default: cout<<"opcao invalida"; break;
} system("PAUSE");
}


AULA 10
Roteiro da 10
a
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; 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 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
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 EM SALA:
Desenvolver um programa que l a senha (letras e/ou nmeros) e valida a mesma.









AULA 11
Roteiro da 11
a
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)
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 (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 cincia e tecnologia.

AULA 13
Roteiro da 13
a
aula
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; // prximo 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 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
T

sai da repetio PI pow (S*32 , 1.0/3)



AULA 14
Roteiro da 14
a
aula
Referncia ao Programa: Elementos Tcnicas de construo de algoritmos e programas
ESTRUTURA DE REPETIO
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 mdia das mulheres e a altura mdia dos homens;
a maior e a menor altura do grupo, dizendo se a altura de um homem ou de uma mulher.
estrutura de repetio 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
seno 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
seno invalidar entrada de sexo (decrementa e volta)
fim
Calcula e mostra:
Mdia altura homem = alt acumulada homens / quat homens
Mdia 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
Referncia ao Programa: Elementos Tcnicas de construo de algoritmos e programas
ESTRUTURA DE REPETIO
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 nmero de veculos de passeio, e o nmero de acidentes com vtima de 2006.
Calcula e mostra:
o maior e menor ndice de acidentes e que cidades;
a mdia de veculos de passeio;
a mdia de acidentes com vtimas 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
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"); }


AULA 17
Roteiro da 17
a
aula
Referncia ao Programa: Estrutura de Dados.
Variveis Compostas homognias
Objetivo: apresentar VETOR.
Exemplo 1:


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 2: 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) { // verificar vrios nmeros
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
Avaliao N2
AULA 19
Prova substitutiva
AULA 20
entrega dos resultados.








AULAS PROGRAMAO DA MATRIA LABORATRIO
1
Apresentao da Disciplina: Ementa,
Contedo, Critrio de Avaliao
Apresentao do Laboratrio: Ambiente Windows e
DevC++
2 Conceitos Bsicos
Mostrar como salva, compila e executa um
programa cuja a sada : Bem_Vindo UCG.
3 Itens Fundamentais e Estrutura Seqencial Estrutura Seqencial COUT
4
Estrutura Seqencial (resto, quociente) ver
exerccios sugeridos
Estrutura Seqencial (resto, quociente) ver
exerccios sugeridos
5 Estrutura Condicional Simples e Composta Estrutura Condicional Simples e Composta
6 Estrutura Condicional Composta Aninhada Estrutura Condicional Composta Aninhada
7 Estrutura Condicional Composta Aninhada Estrutura Condicional Composta Aninhada
8 Avaliao Terica N1 Avaliao Prtica N1
9 Estrutura Condicional switch -case Estrutura Condicional -switch -case
10 Estrutura de Repetio - 1 forma -while Estrutura de Repetio - 1 forma -while
11 Estrutura de Repetio -2 forma dowhile Estrutura de Repetio -2 forma dowhile
12
Semana de cincia e tecnologia (16 a 19 out
ter a sex)
Semana de cincia e tecnologia (16 a 19 out ter a sex)
13 Estrutura de Repetio -3 forma -for Estrutura de Repetio -3 forma -for
14 Estrutura de Repetio Estrutura de Repetio
15 Estrutura de Repetio Estrutura de Repetio
16 Vetor Vetor
17 Vetor Vetor
18 Avaliao Terica N2 Avaliao Prtica N2
19 Prova substitutiva Prova substitutiva
20 Entrega de resultados Entrega de resultados

Você também pode gostar