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

apostila