Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmos e Programação
Algoritmos e Programação
Conceitos de Programação
Programa-fonte e Programa-objeto
código-fonte
Compilador
código-objeto
Link Editor
programa
Definições Básicas
Técnica Top-Down
início
calcula média Início
verifica situação
imprime situação
fim Média =
(Nota1+Nota2)/2
Descrição de um Algoritmo
Nota Exame
Resultado final =
(Média+Nota Exame)/2
Não
“Reprovado”
Fim
3
Algoritmos e Programação
Algoritmo:
Exemplo:
Implementação
Tipos de Programação
Segundo número.
Exercício A
Resposta:
Entradas: Processamento: Saídas:
nota1 somar as notas e dividir por 2 média semestral antes do exame
nota2
algoritmo <nome>
início //início do algoritmo
variáveis //declaração de variáveis
constantes //declaração de constantes
{inicialização de variáveis de controle ou que receberão cálculos}
{solicitação de entrada de dados}
{entrada de dados}
{processamento/cálculos}
{saída de informações e resultados}
fim //final do algoritmo
Modificadores
long ou long int (4 bytes)
unsigned char (0 a 255)
unsigned int (0 a 65535)
short (2 bytes)
Exercício B
Indique que tipo de dados você usaria para representar as informações abaixo:
a) uma nota;
b) uma idade;
c) um nome;
d) uma letra;
e) um telefone;
f) um CPF;
g) uma data;
h) um ano;
i) um horário.
Constante
Exercício C
Variáveis
Uma variável corresponde a uma posição de memória, cujo conteúdo pode mudar
ao longo da execução do programa. Toda variável tem um nome também
conhecido como identificador. Por exemplo ax2 + bx + c = 0, o conteúdo dos
identificadores a, b e c podem mudar (variar), por isso são considerados variáveis.
O nome de uma variável pode ser composto de um ou mais caracteres, mas tem
que seguir as regras abaixo:
Exemplos:
Declaração de Variáveis
Estrutura da declaração:
8
Algoritmos e Programação
Exemplos em pseudocódigo:
Exemplos em C++:
Exercício D
Operadores
Operadores Aritméticos
Algoritmo Linguagem C++
Atribuição ← =
Adição + +
Subtração - -
Multiplicação * *
Divisão real / /
Divisão inteira div sem equivalente
Resto de divisão mod %
Menos Unário - -
9
Algoritmos e Programação
Operadores Lógicos
Algoritmo Linguagem C++
Conjunção e &&
Disjunção ou ||
Negação não !
Operadores Aritméticos
Algoritmo Linguagem C++
Menor < <
Maior > >
Igual = ==
Diferente ≠ !=
Menor ou igual ≤ <=
Maior ou igual ≥ >=
Palavras Reservadas
Em Pseudocódigo
inteiro se repita início
real então para fim
booleano senão selecione constante
leia escreva imprima registro
caracter enquanto caso
Em C++
asm else _loadds sizeof
auto enum long _ss
break _es _near static
case _export near struct
catch extern new switch
_cdecl _far operator template
cdecl far _pascal this
char float private typedef
class for protected union
const friend public unsigned
continue goto register virtual
_cs huge return void
default if _saveregs volatile
do inline _seg while
double int short
_ds interrupt signed
Pseudocódigo
10
Algoritmos e Programação
Comando leia: recebe o que foi digitado pelo usuário. Utilizado quando
desejamos receber o que foi digitado pelo usuário.
Exemplos de Algoritmos
Em C++
#include <iostream.h>
void main()
{
int A, B, Soma;
cout<< “Digite o valor de A:”;
cin>> A;
cout<< “Digite o valor de B:”;
cin>> B;
Soma = A + B;
cout << “A soma e ” << Soma;
}
Em C++
#include <iostream.h>
void main()
{
float A, R;
cout<< “Digite o raio da circunferência:”;
11
Algoritmos e Programação
cin>> R;
A = 3.14159 * (R * R);
cout<< A;
}
Exemplo:
#include <iostream.h>
void main( )
{
cout << “Primeiro Programa”;
}
A Diretiva #include
Exemplos:
#include <iostream.h>
#include “iostream.h”
Comando cout
O comando é usado para imprimir uma mensagem ou valor na tela, ele sempre
está acompanhado do operador <<.
Exemplo:
cout << “Primeiro Programa”;
12
Algoritmos e Programação
Comando cin
O comando é usado para ler uma informação digitada no teclado (uma entrada),
ele sempre está acompanhado do operador >>.
Exemplo:
cin >> n;
Exemplos de Programas
Exercício E
Estrutura de Condição
Este tipo de estrutura testa uma condição e de acordo com o resultado do teste
(verdadeiro ou falso) executa uma operação.
inicio
inteiro A, B;
escreva “Digite A:”;
leia A;
escreva “Digite B:”;
leia B;
se (A > B)
então escreva A;
fim se
14
Algoritmos e Programação
fim
inicio
inteiro A, B;
escreva “Digite A:”;
leia A;
escreva “Digite B:”;
leia B;
se (A > B)
então escreva A;
senão escreva B;
fim se
fim
inicio
real salario, novo_salario;
escreva “Digite salario:”;
leia salario;
se (salario < 500)
então novo_salario ← salario * 1.15;
senão se (salario <= 1000)
então novo_salario ← salario * 1.10;
senão novo_salario ← salario * 1.05;
fim se
fim se
fim
Nesta caso podemos utilizar qualquer uma das estruturas citadas anteriormente,
mas iremos ter o uso de operadores lógicos que auxiliam na composição da
condição.
inicio
inteiro A, B, C;
escreva “Digite A:”;
15
Algoritmos e Programação
leia A;
escreva “Digite B:”;
leia B;
escreva “Digite C:”;
leia C;
se (A > B) e (B < C)
então escreva B;
fim se
fim
Operador Lógico E
Condição 1 Condição 2 Resultado
falsa falsa falsa
verdadeira falsa falsa
falsa verdadeira falsa
verdadeira verdadeira verdadeira
Operador Lógico OU
Condição 1 Condição 2 Resultado
falsa falsa falsa
verdadeira falsa verdadeira
falsa verdadeira verdadeira
verdadeira verdadeira verdadeira
se não (x > 5)
então C ← (A + B) * X;
senão C ← (A - B) * X;;
fim se
Exercício F
a) não (X > 3) V( ) F( )
b) (X < 1) e não (B > D) V( ) F( )
c) não (D < 0) e (C > 5) V( ) F( )
d) não (X > 3) ou (C < 7) V( ) F( )
e) (A > B) ou (C > B) V( ) F( )
f) (X >= 2) V( ) F( )
g) (X < 1) e (B >= D) V( ) F( )
16
Algoritmos e Programação
h) (D < 0) ou (C > 5) V( ) F( )
i) não (D > 3) ou não (B < 7) V( ) F( )
j) (A > B) ou não (C > B) V( ) F( )
Estruturas Condicionais em C
Estrutura if
if (condição)
instrução;
Exemplos:
#include <iostream.h>
#include <conio.h>
void main( )
{
char ch;
ch = getche( );
if (ch == ‘p’)
cout << “Você pressionou a tecla p.”;
}
#include <iostream.h>
#include <conio.h>
void main( )
{
if (getche( ) == ‘p’)
{
cout << “Você pressionou a tecla p.”;
cout << “Pressione qualquer tecla para terminar.”;
getche( );
}
}
Estrutura if-else
if (condição)
instrução_1;
else
instrução_2;
Exemplos:
#include <iostream.h>
17
Algoritmos e Programação
#include <conio.h>
void main( )
{
char ch;
ch = getche( );
if (ch == ‘p’)
cout << “Você pressionou a tecla p.”;
else
cout << “Você não pressionou a tecla p.”;
}
#include <iostream.h>
#include <conio.h>
void main( )
{
if (getche( ) == ‘p’)
{
cout << “Você pressionou a tecla p.”;
cout << “Pressione qualquer tecla para terminar.”;
getche( );
}
else
{
cout << “Você não pressionou a tecla p.”;
cout << “Pressione qualquer tecla para terminar.”;
getche( );
}
}
if (condição_1)
instrução_1;
else if (condição_2)
instrução_2;
else
instrução_3;
Exemplos:
#include <iostream.h>
#include <conio.h>
void main( )
{
char ch;
ch = getche( );
if (ch == ‘p’)
18
Algoritmos e Programação
#include <iostream.h>
#include <conio.h>
void main( )
{
if (getche( ) == ‘p’)
{
cout << “Você pressionou a tecla p.”;
cout << “Pressione qualquer tecla para terminar.”;
getche( );
}
else if (getche( ) == ‘r’)
{
cout << “Você pressionou a tecla r.”;
cout << “Pressione qualquer tecla para terminar.”;
getche( );
}
else
{
cout << “Você não pressionou nem a tecla p e nem a r.”;
cout << “Pressione qualquer tecla para terminar.”;
getche( );
}
}
Exercício G
3) Faça um algoritmo que calcule a média das notas de dois alunos e imprima a
maior delas. Considerando que cada aluno possui três notas.
Exercício H
Este operador tem função muito parecida com a do if-else mas o seu
resultado é atribuído a uma variável.
Exemplos:
1) max = (num1 > num2) ? num1: num2;
equivale a
equivale a
if (num < 0)
20
Algoritmos e Programação
abs = - num;
else
abs = num;
Exercício I
Estrutura selecione
inicio
real num1, num2;
caracter op;
escreva “Digite um número, operador, número”;
leia num1, op, num2;
selecione (op)
caso ‘+’:
escreva “ = ”, num1 + num2;
quebra;
caso ‘-’:
escreva “ = ”, num1 - num2;
quebra;
caso ‘*’:
escreva “ = ”, num1 * num2;
quebra;
caso ‘/’:
escreva “ = ”, num1 / num2;
quebra;
padrão:
21
Algoritmos e Programação
Em C++
#include <iostream.h>
#include <conio.h>
void main( )
{
float num1, num2;
char op;
cout << “Digite um número, operador, número” << endl;
cin >> num1, op, num2;
switch (op)
{
case ‘+’:
cout << “ = ” << num1 + num2;
break;
case ‘-’:
cout << “ = ” << num1 - num2;
break;
case ‘*’:
cout << “ =” << num1 * num2;
break;
case ‘/’:
cout << “ = ” << num1 / num2);
break;
default:
cout << “Operador desconhecido!”;
}
getch( );
}
Comando quebra
22
Algoritmos e Programação
inicio
real num1, num2;
caracter op;
escreva “Digite um número, operador, número”;
leia num1, op, num2;
selecione (op)
caso ‘+’:
escreva “ = ”, num1 + num2;
quebra;
caso ‘-’:
escreva “ = ”, num1 - num2;
quebra;
caso ‘*’:
caso ‘x’:
escreva “ = ”, num1 * num2;
quebra;
caso ‘/’:
caso ‘\’:
escreva “ = ”, num1 / num2;
quebra;
padrão:
escreva “Operador desconhecido!”;
fim selecione
}
Em C++
#include <iostream.h>
#include <conio.h>
void main( )
{
float num1, num2;
char op;
cout << “Digite um número, operador, número” << endl;
cin >> num1, op, num2;
switch (op)
{
case ‘+’:
cout << “ = ” << num1 + num2;
break;
case ‘-’:
cout << “ = ” << num1 - num2;
break;
23
Algoritmos e Programação
case ‘*’:
case ‘x’:
cout << “ =” << num1 * num2;
break;
case ‘/’:
case ‘\\’:
cout << “ = ” << num1 / num2);
break;
default:
cout << “Operador desconhecido!”;
}
getch( );
}
Exercício O
Estruturas de Repetição
Estrutura enquanto-repita
Outro exemplo: Faça um algoritmo que leia 5 números e os multiplique por três
exibindo o resultado de cada multiplicação.
inicio
inteiro X, R, cont;
cont ← 1;
enquanto (cont <= 5) repita
escreva “Digite X:”;
leia X;
R ← X * 3;
escreva R;
cont ← cont + 1;
fim enquanto
fim
Laço while
while (condição)
instrução;
Exercício J
Estrutura repita-enquanto
repita
<bloco>
enquanto <condição>
26
Algoritmos e Programação
Outro exemplo: Faça um algoritmo que leia 5 números e os multiplique por três
exibindo o resultado de cada multiplicação.
inicio
inteiro X, R, cont;
cont ← 1;
repita
escreva “Digite X:”;
leia X;
R ← X * 3;
escreva R;
cont ← cont + 1;
enquanto (cont <= 5)
fim
Exemplos:
#include <iostream.h>
void main( )
{
char ch;
cout << “Digite algum caracter:”;
ch = getche( );
cout << “\nA tecla que você pressionou é ” << ch;
}
#include <iostream.h>
void main( )
{
27
Algoritmos e Programação
char ch;
cout << “Digite algum caracter:”;
ch = getch( );
cout << “\nA tecla que você pressionou é ” << ch;
}
Laço do-while
Este laço tem a mesma função do laço while, a diferença entre eles é que neste é
possível executar pelo menos uma vez as instruções, por que nele a condição é
verificada somente no final, ou seja, quando temos um caso em que precisamos
executar instruções pelo menos uma vez é que o utilizamos. Ele equivale a
estrutura repita-enquanto do algoritmo.
do
{
instrução;
} while (condição);
break;
case '-':
cout << " = " << num1 - num2;
break;
case '*':
case 'x':
cout << " = " << num1 * num2;
break;
case '/':
case '\\':
cout << " = " << num1 / num2;
break;
default:
cout << "Operador Invalido";
}
cout << “Deseja fazer novo cálculo? ”;
ch = getche( );
} while (ch == ‘S’ || ch == ‘s’);
getch();
}
Exercício K
fim se
fim para
escreva “A soma é: ”, s;
fim
Outro exemplo: Faça um algoritmo que leia 5 números e os multiplique por três
exibindo o resultado de cada multiplicação.
inicio
inteiro X, R, cont;
para (cont = 0; cont < 5; cont ← cont + 1)
escreva “Digite X:”;
leia X;
R ← X * 3;
escreva R;
cont ← cont + 1;
fim para
fim
Exemplos:
i++ eqüivale a i = i + 1
i-- eqüivale a i = i - 1
Pré-fixada = ++i ou - - i
Pós-fixada = i++ ou i - -
Exemplo de pós-fixada:
#include <iostream.h>
void main( )
{
int n, x;
n = 5;
x = n++;
cout << “x = “ << x << “, n = ” << n;
}
Saída: x = 5 n = 6
Exemplo de pré-fixada:
#include <iostream.h>
30
Algoritmos e Programação
void main( )
{
int n, x;
n = 5;
x = ++n;
cout << “x =” << x << “, n = “ << n;
}
Saída: x = 6 n = 6
Outros exemplos:
K = 3 * n++;
K = 3 * ++n;
Importante: estes operadores só podem ser usados com variáveis e não com
constantes ou expressões.
X op= exp;
X = (X) op (exp);
Exemplos:
i += 2; equivale a i = i + 2;
x *= y + 1; equivale a x = x * (y + 1);
t /= 2.5; equivale a t = t / 2.5;
p %= 5; equivale a p = p % 5;
d -= 3; equivale a d = d - 3;
Exemplo:
#include <iostream.h>
void main( )
{
int total = 0, cont = 10;
cout << “Total = ” << total << endl;
total += cont;
cout << “Total = ” << total <<endl;
total += cont;
cout << “Total = “ << total;
}
Laço for
Exemplo: Imprime a soma de x + y enquanto esta soma for menor que 100.
#include <iostream.h>
void main( )
{
int x, y;
for (x = 0, y = 0; x + y < 100; x++, y++)
cout << x + y << endl;
}
Exercício L
32
Algoritmos e Programação
Exemplos:
2! = 2 * 1 = 2
3! = 3 * 2 * 1 = 6
4! = 4 * 3 * 2 * 1 = 24
5! = 5 * 4 * 3 * 2 * 1 = 120
11)Faça um programa que leia 5 valores para A, um de cada vez, e conte quantos
deles são negativos, escrevendo esta informação.
Vetor
nome tamanh
da o do
0 1 2 3 4 5 6 7 8 9
V 45 32 66 2 0 12 5 77 31 10
Nome da Conteúd
variável o
inicio
real nota[2], media;
nota[ 0 ] = 5.0;
nota[ 1 ] = 7.0;
media ← (nota[0] + nota[1])/2;
escreva “A media e ”, media;
fim
A outra maneira é utilizando um laço, onde utilizamos um índice para indicar que
elemento do vetor estamos acessando, por exemplo:
inicio
real nota[10];
inteiro i;
para (i ← 0; i < 10; i ← i+1)
escreva “Digite a nota:”;
leia nota[ i ];
fim para
fim
Outro exemplo: Faça um algoritmo que leia 100 números, depois receba um
número qualquer e verifique se ele existe entre os 100 anteriores e imprima a(s)
posição(ões) onde ele aparece dentro do vetor.
inicio
inteiro N[100], i, comp;
para (i ← 0; i<100; i ← i + 1)
escreva “Digite o numero”, i+1;
leia N[ i ];
fim para
escreva “Digite um numero para localizar”;
leia comp;
para (i ← 0; i<100; i ← i + 1)
se (N[ i ] = comp)
escreva i;
fim se
fim para
fim
Composição de Vetores
0 1 2 3 4 5 6 7 8 9
peso 46.5 66.1 99.1 33.1 14.2 13.0 67.5 58.8 48.0 54.1
0 1 2 3 4 5 6 7 8 9
idade 27 28 15 12 64 13 20 34 28 44
Cadastro de Produtos
0 1 2 3 4 5 6 7 8 9
codig
o
0 1 2 3 4 5 6 7 8 9
preco
35
Algoritmos e Programação
0 1 2 3 4 5 6 7 8 9
quant
inicio
real preco[10];
inteiro codigo[10], i, quant[10];
escreva “Cadastro de produtos”;
para (i ← 0; i<10; i ← i + 1)
escreva “Digite o codigo: ”;
leia codigo[ i ];
escreva “Digite o preco: ”;
leia preco[ i ];
escreva “Digite a quantidade: ”;
leia quant[ i ];
fim para
escreva “Os valores em estoque por produto são:”;
para (i ← 0; i<10; i ← i + 1)
escreva preco[ i ] * quant[ i ];
fim para
fim
Em C++
#include <iostream.h>
void main()
{
float nota[2], media;
nota[ 0 ] = 5.0;
nota[ 1 ] = 7.0;
media = (nota[0] + nota[1])/2;
cout << “A media e ” << media;
}
#include <iostream.h>
void main()
{
float nota[2], media;
int i;
for (i=0; i < 2; i++)
{
cout << “Digite a nota ” << i+1;
cin >> nota[ i ];
}
media = (nota[0] + nota[1])/2;
36
Algoritmos e Programação
Outro exemplo: Faça um algoritmo que leia 100 números, depois receba um
número qualquer e verifique se ele existe entre os 100 anteriores e imprima a(s)
posição(ões) onde ele aparece dentro do vetor.
#include <iostream.h>
void main()
{
int N[100], i, comp;
for (i=0; i<100; i++)
{
cout << “Digite o numero”;
cin >> N[ i ];
}
cout << “Digite um numero para localizar”;
cin >> comp;
for (i=0; i<100; i++)
if (N[ i ] == comp)
cout << i;
}
Exercício M