Você está na página 1de 53

Disciplina

Informtica e Computao
CMP 1060









Prof. MSc Mrio Oliveira Orsi
2/fev/2011

Informtica e Computao CMP 1060
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. 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 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. Friquicione a extremidade grossa na parte preta

O detalhamento deve se 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++
1. 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 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
Intervalo
Inicio Fim
char 8 -128 127
unsigned char 8 0 255
signed char 8 -128 127
int 16 -32.768 32.767
unsigned int 16 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

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;
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
Variveis do mesmo tipo devem ser separadas por
vrgula ( , ).
Todo comando finalizado com ponto-vrgula ( ; )
Expresso Original Expresso Equivalente
x = x + k; x + = k;
x = x - k; x - = k;
x = x * k; x * = k;
x = x / k; x / = k;
Exemplo:




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 ( no pertencem ling C++}
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;
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>

#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)

4. Comando de Sada ( cout )
Ex: 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;








Exemplo: programa imprime na tela a mensagem: Ola! Eu estou vivo.
Cdigos especiais Significado
\n

\t

\a

\r

\0

Nova linha
Tabulao
beep
CR volta o cursor para o inicio da linha
Zero (Null)
#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( )
{
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
item
num_pesca
custo
letra
b
5
pedro
7.00
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. 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
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
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)


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.
// 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


!(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
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
instruo3
instruo4
}
else
{
SE EXISTIR MAIS DE
UMA INSTRUO
PARA SER
EXECUTADA DENTRO
DO COMANDO if OU
DO else
DEVEMOS COLOCAR
AS CHAVES {
}
if(...)
instruo1;
instruo2;

Provavelmente aquilo que queriam fazer
era:
if(...) {
instruo1;
instruo2;
}
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) { cout<<Voc passou\n"; }
else { cout<<Que pena, voc reprovou.\n";
}
system (PAUSE); }
AULA 06 e 07
Roteiro da 6
a
e 7
a
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) 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 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;

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 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,36OPCAO;
cout << DIGITE UMA OPCAO\n;
cout << (1) Somar (2) Multiplicar (3) Diminuir (4) Dividir \n;
cin >> OPCAO36;
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: 36F (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:
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 cidadania / cincia e tecnologia.

AULA 13 e 14
Roteiro da 13
a
e 14
a
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; // 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
sai da repetio PI pow (S*32 , 1.0/3)
AULA 15
Avaliao N2
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"); }

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) { // 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 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.