Escolar Documentos
Profissional Documentos
Cultura Documentos
DISCIPLINA:
ALGORTMO E LGICA DE PROGRAMAO
Presidente Prudente
2015
SUMRIO
1
3
4
6
7
1
1.1
1.2
CONTEDO PROGRAMTICO
Estudo e desenvolvimento de algoritmos.
Pseudocdigo
Fluxograma
Tipos de Dados Bsicos e Estruturados
Tipos de variveis
Declarao de variveis
Inicializao de variveis
Operadores
Aritmticos
Relacionais
Lgicos
Mtodos de Entrada e Sada
Mtodos de sada
Mtodos de entrada
Comandos de Deciso
se
caso ... escolha
Comandos de Iterao
Para
Enquanto
Repita... at
Arrays
Vetores
Matrizes
Implementao de algoritmos - Linguagens de Programao C
BIBLIOGRAFIA
Bsica
ZIVIANI, N. Projeto de Algoritmos com Implementaes em Pascal e C.
2 ed. Thomson Pioneira, 2004.
AVILLANO, Israel de Campos. Algoritmos e Pascal Manual de Apoio. 2
ed. Cincia Moderna, 2006.
Complementar
ASCENCIO, A. F. G, CAMPOS, E. A. V. Fundamentos da Programao
de Computadores: algoritmos, Pascal e C/C++ e Java. Longman, 2007.
FORBELLONE, L. V., EBERSPACHER, H. F. Lgica de Programao: a
construo de algoritmos e estruturas de dados. Prentice Hall, 2005.
FARRER, H. et al. Algoritmos Estruturados. Rio de Janeiro: LTC - Livros
Tcnicos e Cientficos S.A., 1989.
GUIMARES/LAJES. Algoritmos e Estrutura de Dados. Rio de Janeiro:
LTC - Livros Tcnicos e Cientficos S.A., 1994.
WIRTH, N. Algoritmos e Estrutura de Dados. Rio de Janeiro, LTC Livros
Tcnicos e Cientficos, 1989.
************************************************************************************************
O ALUNO ESCOLHEU O CURSO DE ANALISE E DESENVOLVIMENTO DE
SISTEMAS (ADS) E VEIO A FACULDADE PARA CURS-LO,
ENTO DEVE SE DEDICAR.
************************************************************************************************
1.4
ONDE CHEGAREMOS?
Por exemplo, desenvolveremos programas simples como esse que est na tela do
Prompt (acima).
2
2.1
ALGORITMO
2.2
2.3
LGICA DE PROGRAMAO
Computadores so dispositivos que s sabem fazer um tipo de coisa: executar
algoritmos para processar informao.
Lgica de programao a tcnica de encadear pensamentos para atingir
determinado objetivo.
SEQUENCIA LGICA
Estes pensamentos podem ser descritos como uma sequncia de instrues, que
devem ser seguidas para se cumprir uma determinada tarefa.
Sequncia Lgica so passos executados at atingir um objetivo ou soluo de um
problema.
INSTRUES
Na linguagem comum, entende-se por instrues um conjunto de regras ou
normas definidas para a realizao ou emprego de algo.
Em informtica, porm, a instruo a informao que indica ao computador a
ao a executar.
Assim as instrues devem ser colocadas em ordem sequencial lgica.
Exemplo:
2.4
DEFINIO DE ALGORITMO
Um algoritmo formalmente uma sequncia finita de passos que levam a
execuo de uma tarefa.
Pode-se pensar em algoritmo como uma receita, uma sequncia de instrues
que atendem um objetivo.
Estas tarefas no podem ser redundantes nem subjetivas na sua definio,
devem ser claras e precisas.
Como exemplos de algoritmos pode-se citar os algoritmos das operaes
bsicas (adio, multiplicao, diviso e subtrao) de nmeros reais decimais.
Outros exemplos seriam os manuais de aparelhos eletrnicos, como um celular,
que explicam passo-a-passo como, por exemplo, gravar um contato, etc.
2.5
ALGORITMO NO COMPUTACIONAL
At mesmo as coisas mais simples, podem ser descritas por sequencias lgicas.
Por exemplo:
Chupar uma bala.
Pegar a bala
Retirar o papel
Chupar a bala
Jogar o papel no lixo
EXERCCIOS
1. Faa um algoritmo para somar dois nmeros e multiplicar o resultado pelo primeiro
nmero.
2. Descreva com detalhes a sequncia lgica para Trocar um pneu de um carro.
3. Faa um algoritmo para trocar uma lmpada. Descreva com detalhes.
4. Considere o seguinte problema:
Temos trs hastes. Uma das hastes serve de suporte para trs discos de
tamanhos diferentes. Os discos menores so sempre colocados sobre os
discos maiores. A figura abaixo mostra uma possvel situao inicial das
hastes e discos.
Deseja-se mover todos os discos para outra haste, porm s podemos
movimentar um disco de cada vez e um disco maior nunca pode ser
colocado sobre um disco de menor tamanho.
Curiosidade: Este problema foi criado m 1883 pelo matemtico francs Edouard Lucas
(1842-1891), que tambm criou uma lenda curiosa para enunciar o problema. Deixo para
vocs procurarem na Internet a lenda das Torres de Hani. Resoluo com sete passos.
Situao esperada
2.6
PROGRAMA
Um programa um Algoritmo escrito em uma linguagem computacional.
LINGUAGENS DE PROGRAMAO
So softwares que permitem o desenvolvimento de programas. Possuem um poder
de criao ilimitado, desde jogos, editores de texto, sistemas empresariais at sistemas
operacionais.
Exemplos:
Pascal, Clipper, Cobol, C, C++, Visual Basic, Delphi, Java, Python, C# e etc.
2.9
10
11
12
5 % 2;
4 % 2;
Exemplo:
resto
resto = 0
13
O argumento a informao que dada funo para que ela possa ser efetuada
adequadamente. Pode ser uma constante ou uma varivel.
Exemplos de algumas Funes Matemticas que utilizaremos:
sin (X) - Funo que calcula o seno da varivel X
sqrt (y) - Funo que calcula a raiz quadrada de y
int (z) - Funo que retorna a parte inteira da varivel z (que deve ser do tipo real)
pow(x,y) Potenciao. Significa x elevado a y. Ex.: pow (3,2) = 9
2.12.2 Operadores Relacionais
Operadores relacionais so sinais utilizados para realizar comparaes entre dois
valores de mesmo tipo.
Os valores comparados podem ser constantes, variveis ou expresses
aritmticas.
OPERADOR
FUNO
EXEMPLO
=
igual a
5 = 5, x = y
>
maior que
8 > 4, x > y
<
menor que
1 < 5, x < y
>=
maior ou igual a
11 >= 5, x >= y
<=
menor ou igual a
2 <= 5, x <= y
!=
diferente de
34 != 5, a != b
Exerccios
1. Tendo as variveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe
se as expresses so verdadeiras ou falsas.
SALRIO
100,00
200,000
300,00
IR
0
10,00
15,00
SALLIQ
100,00
190,00
285,00
EXPRESSO
(SALLIQ >= 100,00)
(SALLIQ < 190,00)
SALLIQ=SALARIO - IR
V ou F
14
No-numricos
a) caracter (alfanumrico): qualquer dado composto por um conjunto de
caracteres alfanumricos. Os caracteres alfanumricos so os nmeros, as
letras e os caracteres especiais (!,@,#,$,%, etc). Ex: CASA livro 18
R$ 55,36...
b) lgico ou booleanos: um tipo de dado que s pode assumir dois valores
Ex: Falso, Verdadeiro (ou False, True)
15
16
2.14.2 Variveis
Representam informaes cujos valores so modificados durante a execuo do
algoritmo. Podemos definir variveis tambm como um local onde um determinado valor
(de um dos tipos definidos) armazenado. Assim, a varivel composta de dois
elementos bsicos:
contedo - valor atual da varivel
identificador - nome dado varivel para possibilitar sua manipulao
O conceito de varivel, na verdade, corresponde a posies de memria RAM,
onde sero armazenados os dados manipulados pelo programa quando este for
implementado.
Linguagem C
Tipo lista de variveis;
17
18
19
Linguagem C/C++
int ano, dia, qtde;
float salrio, deposito;
b) inicializao de variveis
Portugol
ano 2012;
soma 0;
Linguagem C/C++
ano= 2012;
soma= 0;
c) entrada de dados;
Portugol
leia(ano);
leia(salrio);
Linguagem C++
cout<< Digite o ano;
cin>> ano;
cout<< Digite o salrio: ;
cin>> salario;
Linguagem C/C++
media = (p1+p2)/2;
novo = salrio+(salrio*0.15);
e) sada de dados;
Portugol
escreva(media);
escreva(Novo salario: , novo);
Linguagem C++
cout << media;
cout << Novo salario: << novo;
20
21
Portugol
Linguagem C++
*declarao de variveis
comentrio
incio
fim
inteiro
int
real
caracter
leia ();
float
char (para uma caracter/letra)
string (para vrias caracteres/letras)
bool
0 => verdadeiro
1 => falso
cin >> ano;
escreva ();
ou
lgico
22
ESTRUTURA DE SELEO/DECISO
4.1
TABELA DA VERDADE
um conjunto de todas as possibilidades combinatrias entre os valores de diversas
variveis lgicas, as quais se encontram em apenas duas situaes (V ou F) e utilizada
em conjunto com os operadores lgicos.
Relembrando os operadores lgicos: Utilizaremos trs conectivos bsicos para a
formao de novas proposies lgicas simples.
Operador
Funo
Linguagem C
no
negao
not
conjuno
&&
and
ou
disjuno
||
or
TABELA DA VERDADE
Operao de Negao
A
no A
F
Operao de conjuno
AeB
A ou B
23
Exerccios
1. Sabendo que A=5, B=4 e C=3 e D=6, informe se as expresses abaixo so verdadeiras
ou falsas.
a) (A > C) e (C <= D)
b) ((A+B) > 10) ou (A+B) = (C+D)
c) (A>=C) e (D >= C)
d) no ( (A < D) e (D > C) )
2. Resolva esses exerccios detalhadamente.
a) F ou ( (20 - (18/3)) != ((21/3) * 5) )
b) no V ( ou (6 3 / 3 < 15 35 % 7) )
c) no ( ( (5 != 10/2) ou V) e ( (2 5 > 5 2) e V) )
d) pow(2,3) != 4 + 2 ou 2 + 10 % 5 > 0
4.2
Linguagem C/C++
if (condio){
.... bloco de comandos
....
}
Linguagem C++
#include <iostream>
using namespace std;
int main(){
/*declarao de variveis*/
float P1, P2, media;
cout << Digite a P1: ;
cin >> P1;
cout<< Digite a P2: ;
cin >> P2;
media = (P1 + P2) / 2;
cout << Media= << media;
if (media >= 6)
cout<<(Aluno Aprovado);
}
system(pause>null);
24
Linguagem C/C++
if (condio){
.... bloco de comandos 1
....
}
else {
.... bloco de comandos 2
}
Linguagem C++
#include <iostream>
using namespace std;
int main(){
/*declarao de variveis*/
float P1, P2, media;
cout << Digite a P1: ;
cin >> P1;
cout<< Digite a P2: ;
cin >> P2;
media = (P1 + P2) / 2;
cout << Media= << media;
if (media >= 6)
cout <<Aluno Aprovado;
else
cout <<Aluno Reprovado;
system(pause>null);
}
Linguagem C/C++
if (condio 1){
.... bloco de comandos 1
....
}
else if (condio 2) {
.... bloco de comandos 2
}
else {
.... bloco de comandos 3
}
25
Linguagem C/C++
switch (X){
case v1: ...comandos;
break;
case v2: ...comandos;
break;
case v3: ...comandos;
break;
default : ...comandos;
break;
}
onde <v1>, <v2>, <v3> so supostos valores a serem relacionados por meio da operao
de igualdade com o valor da varivel X.
Exemplo 1:
Portugol
Algoritmo Menu
Inicio
Inteiro opcao;
escreva(Menu);
escreva(1- Ver Saldo);
escreva(2- Depositar);
escreva(3- Sacar);
escreva(Digite a opo desejada:);
leia(opcao);
escolha (opcao)
incio
caso 1: escreva (Saldo atual.);
parar;
caso 2: escreva(Qual valor? );
parar;
caso 3: escreva(Quanto sacar? );
parar;
caso contrario:escreva (Opo invlida.);
parar;
fim
fim
Linguagem C++
#include <iostream>
using namespace std;
int main(){
int opcao;
cout<< Menu;
cout<< 1- Ver Saldo;
cout<< 2- Depositar;
cout<< 3- Sacar;
cout<< Digite a opo desejada:;
cin >> opcao;
switch (opcao){
case 1: cout << Saldo atual.;
break;
case 2: cout << Qual valor? ;
break;
case 3: cout << Quanto sacar? ;
break;
default: cout << Opo invlida.;
break;
}
system(pause>null);
}
Exemplo 2:
Portugol
Algoritmo Menu
Inicio
Inteiro opcao;
escreva(pocas do ano);
escreva(1- Vero);
escreva(2- Outono);
escreva(3- Inverno);
Linguagem C++
#include <iostream>
using namespace std;
int main(){
int opcao;
cout<< pocas do ano;
cout<< 1- Vero;
cout<< 2- Outono;
26
escreva(4- Primavera);
escreva(Digite a poca desejada:);
leia(opcao);
escolha (opcao)
incio
caso 1: escreva (Vero);
parar;
caso 2: escreva(Outono );
parar;
caso 3: escreva(Inverno );
parar;
caso 4: escreva (Primavera.);
parar;
caso contrrio: escreva (Opo invlida);
break;
fim
fim
cout<< 3- Inverno;
cout<< 4-Primavera;
cout<< Digite a opo desejada:;
cin >> opcao;
switch (opcao){
case 1: cout << Vero;
break;
case 2: cout << Outono;
break;
case 3: cout << Inverno;
break;
case 4: cout << Primavera;
break;
default: cout << Opo invlida;
break;
}
system(pause>null);
27
ESTRUTURAS DE REPETIO
uma estrutura de desvio do fluxo de controle presente em linguagens de
programao que realiza e repete diferentes aes dependendo se uma condio
verdadeira ou falsa, em que a expresso processada e transformada em um valor lgico
(booleano). Esto associados a uma estrutura de repetio, uma condio (tambm
chamada "expresso de controle" ou "condio de parada") e um bloco de cdigo:
verifica-se a condio, e caso seja verdadeira, o bloco executado. Aps o final da
execuo do bloco, a condio verificada novamente, e caso ela ainda seja verdadeira,
o cdigo executado novamente.
Deve-se observar que, caso o bloco de cdigo nunca modificar o estado da
condio, a estrutura ser executada para sempre, uma situao chamada lao infinito
(looping infinito). Da mesma forma, possvel especificar uma estrutura em que o bloco
de cdigo modifica o estado da condio, mas esta sempre verdadeira.
Algumas linguagens de programao especificam ainda uma palavra reservada
para sair da estrutura de repetio de dentro do bloco de cdigo, "quebrando" a
estrutura. Tambm oferecida por algumas linguagens uma palavra reservada (break)
para terminar uma iterao especfica do bloco de cdigo, forando nova verificao da
condio.
Existem ocasies em que necessrio efetuar a repetio de um determinado
nmero de vezes. Neste caso, poder ser criado um looping que efetue o processamento
de um determinado trecho, tantas vezes forem necessrias. Os loopings tambm so
chamados de laos de repetio ou malhas de repetio.
A principal vantagem deste recurso que o programa passa a ter um tamanho
menor, aumentando o processamento sem alterar o tamanho do cdigo de programao.
5.1
Linguagem C/C++
enquanto (condio)
incio
/*bloco de cdigos*/
fim
while (condio)
{
/*bloco de cdigos*/
}
Linguagem C++
#include <iostream>
using namespace std;
int main(){
float media;
int qtde_alunos, idade, soma;
qtde_alunos = 0;
soma= 0;
while (qtde_alunos <5)
{
cout << "Digite a idade: ";
cin >> idade;
soma= soma + idade;
qtde_alunos= qtde_alunos + 1;
}
media= soma/qtde_alunos;
cout << Media= << media<< endl;
system(pause>null);
}
28
5.2
Codigo
%c
%d ou %i
%o
%x
%ld
%e
%f
%s
Elemento armazenado
um nico caracter
um inteiro do sistema decimal
um inteiro do sistema octal
um inteiro do sistema hexadecimal
um valor do tipo long
um nmero na notao cientfica
um nmero em ponto flutuante
uma cadeia de caracteres
Linguagem C
#include<stdio.h>
main(){
float media;
int qtde_alunos, idade, soma;
soma= 0;
qtde_alunos= 0;
while (qtde_alunos <5)
{
//comando PRINTF para mostrar dados
printf("Informe a idade: ");
//comando SCANF para ler dados
scanf("%d",&idade);
soma= soma + idade;
qtde_alunos= qtde_alunos + 1;
}
media= soma/qtde_alunos;
printf("A Media eh= %.2f", media,"\n");
getch();
}
Linguagem C++
#include <iostream>
using namespace std;
int main(){
float media;
int qtde_alunos, idade, soma;
qtde_alunos = 0; soma= 0;
cout << "Digite a idade: ";
cin >> idade;
while (idade > 0)
{
soma= soma + idade;
qtde_alunos = qtde_alunos + 1;
cout << "Digite a idade: ";
cin >> idade;
}
media= soma/qtde_alunos;
cout << Media= << media<< endl;
system(pause>null);
}
29
Linguagem C
#include<stdio.h>
main(){
float media;
int qtde_alunos, idade, soma;
qtde_alunos = 0;
soma= 0;
printf("Digite a idade: ");
scanf(%d, &idade);
while (idade > 0)
{
soma= soma + idade;
qtde_alunos = qtde_alunos + 1;
printf("Digite a idade: ");
scanf(%d, &idade);
}
media= soma/qtde_alunos;
printf("Media= %.2f , media,\n;
getch();
}
5.3
Linguagem C/C++
repita
/*bloco de cdigos*/
at (condio);
do
{
/*bloco de cdigos*/
} while (condio);
Linguagem C
#include<stdio.h>
main(){
float media;
Linguagem C++
#include <iostream>
using namespace std;
int main(){
float media;
int qtde_alunos, idade, soma;
qtde_alunos = 0;
soma= 0;
do {
cout << "Digite a idade: ";
cin >> idade;
soma= soma + idade;
qtde_alunos = qtde_alunos + 1;
} while (qtde_alunos < 5);
media= soma/qtde_alunos;
cout << Media= << media<< endl;
system(pause>null);
}
30
Linguagem C
#include<stdio.h>
main(){
float media;
int qtde_alunos, idade, soma;
qtde_alunos = 0;
soma= 0;
do {
printf("Digite a idade: ");
scanf(%d,&idade);
soma= soma + idade;
qtde_alunos = qtde_alunos + 1;
} while (idade > 0);
media= soma/qtde_alunos-1;
printf("Media= %.2f , media,\n;
getch();
}
Linguagem C++
#include <iostream>
using namespace std;
int main(){
float media;
int qtde_alunos, idade, soma;
qtde_alunos = 0;
soma= 0;
do {
cout << "Digite a idade: ";
cin >> idade;
soma= soma + idade;
qtde_alunos= qtde_alunos + 1;
} while (idade > 0);
media= soma/qtde_alunos-1;
cout << Media= << media<< endl;
system(pause>null);
}
31
5.4
{
incio
/*bloco de cdigos*/
/*bloco de cdigos*/
}
fim
onde:
"contador" a varivel de controle;
"inicio" o valor inicial de "contador";
"fim" o valor final de "contador";
"nr" o valor segundo o qual "contador" ser incrementado a cada execuo.
Exemplo: Esse algoritmo imprime os nmeros de 1 at 500.
Portugol
Algoritmo Contador
Incio /*q_al= qtde_alunos */
inteiro cont;
para cont de 1 at 50 incremento de 1
inicio
escreva (cont, " - ");
fim
fim
Linguagem C++
#include <iostream>
using namespace std;
int main(){
int cont;
for(cont=1; cont <=50; cont ++)
{
cout << cont << " - ";
}
system(pause>null);
}
Linguagem C
#include<stdio.h>
main(){
int cont;
for(cont=1; cont <=50; cont ++)
{
printf( " - ");
}
getch();
}
Exemplo: Calcule e apresente a mdia de idades de uma sala de aula de cinco alunos.
Portugol
Algoritmo Media_Para
Incio /*q_al= qtde_alunos */
inteiro q_al, idade, soma;
real media;
soma<- 0;
para q_al de 1 at 5 incremento de 1
inicio
escreva ("Digite a idade: ");
leia(idade);
soma<- soma + idade;
fim
media<- soma/5;
escreva (Media= , media);
fim
Linguagem C++
#include <iostream>
using namespace std;
int main(){
float media;
int q_al, idade, soma;
soma= 0;
for(q_al=1; q_al <=5; q_al++)
{
cout << "Digite a idade: ";
cin >> idade;
soma= soma + idade;
}
media= soma/5;
cout << Media= << media<< endl;
32
system(pause>null);
Linguagem C
#include<stdio.h>
main(){
float media;
int q_al, idade, soma;
soma= 0;
for(q_al=1; q_al <=5; q_al++)
{
printf("Digite a idade: ");
scanf(%d,&idade);
soma= soma + idade;
}
media= soma/5;
printf("Media= %.2f, media, \n;
getch();
}
Linguagem C
#include<stdio.h>
main(){
float media;
int q_al, idade, soma;
soma= 0;
for(q_al=5; q_al <=1; q_al--)
{
printf("Digite a idade: ");
scanf(%d,&idade);
soma= soma + idade;
}
media= soma/5;
printf("Media= %.2f, media, \n;
getch();
}
Linguagem C++
#include <iostream>
using namespace std;
int main(){
float media;
int q_al, idade, soma;
soma= 0;
for(q_al=5; q_al <=1; q_al--)
{
cout << "Digite a idade: ";
cin >> idade;
soma= soma + idade;
}
media= soma/5;
cout << Media= << media<< endl;
system(pause>null);
}
33
5.5
BREAK
O comando break serve para determinar uma quebra de estrutura, ou seja, ele faz
com que, por exemplo, um loop (repetio) pare. No comando switch, por exemplo, ele
determina que no pode ser executado o case seguinte, e assim por diante.
No exemplo abaixo, temos uma repetio que se inicia em 1 e deve terminar em
cem (100), mas dentro desta estrutura h uma condio: se a varivel for igual a 10, saia
da estrutura de repetio.
Portugol
Algoritmo Break_
Incio/*q_al= qtde_alunos */
inteiro contador;
para contador 1 at 100 incremento de1
inicio
escreva ("Esta a repetio nr: ,
contador);
se (contador = 10)
parar;
fim
fim
Linguagem C++
#include <iostream>
using namespace std;
int main(){
for(int contador=1; contador<=100;
contador ++)
{
cout << "Esta a repetio nr: <<
contador;
if (contador == 10)
break;
}
system(pause>null);
}
Linguagem C
#include<stdio.h>
main(){
for(int contador=1; contador<=100; contador ++)
{
printf(Esta a repetio nr: %d, contador);
if (contador == 10)
break;
}
getch();
}
CONTINUE
Continue a sua funo ignorar o cdigo, e no sair como acontece com o break.
Linguagem C++
#include <iostream>
using namespace std;
int main(){
for(int contador=1; contador<=50;
contador ++)
{
if (contador%5 != 0)
continue;
34
fim
fim
}
Linguagem C
#include<stdio.h>
main(){
for(int contador=1; contador<=1000; contador ++)
{
Printf(Esta a repetio nr: %d, contador);
if (contador%5 != 0)
continue;
printf(contador,\n);
}
getch();
}
35
ARRAY - VETOR
Um vetor uma varivel composta homognea unidimensional formada por uma
sequncia de variveis, todas do mesmo tipo, com o mesmo identificador (mesmo nome)
e alocadas sequencialmente na memria. Uma vez que as variveis tm o mesmo nome,
o que as distingue so os ndices que referenciam sua localizao dentro da estrutura.
Declarao de Vetor
Sintaxe:
Tipo Nome [tamanho];
Onde tipo o tipo de dado, tal como inteiro, ou real, ou caracter, nome o nome
da varivel, tamanho a quantidade de posies que estar disponvel para
armazenamento.
Exemplo de Vetor
//declarao da varivel
//atribuio de valores
int X[5];
X[2]= 55;
X[4]= 11;
0
55
2
11
4
Inicializando vetor
Inicializando com zeros: int zeros[75] = {0};
int vet [5] = { 16, 2, 77, 40, 12071 };
Representando o vetor
16
0
2
1
77
2
40
3
12071
4
vet[0]
16
0
vet[1]
2
1
vet[2]
77
2
vet[3]
40
3
vet[4]
12071
4
Ler string que contenha espao em branco entre a digitao getline(cin, nome);
Seguindo o exemplo anterior no qual vet tinha 5 elementos e cada um desses
elementos do tipo int, o nome que podemos usar para se referir a cada elemento o
seguinte:
Linguagem C++
#include <iostream>
using namespace std;
int main(){
int i, X[5];
for (int i=0; i<5; i ++)
{
cout<<Digite o <<i<< nmero: ;
cin >> X[i];
}
system(pause>null);
}
36
Linguagem C
#include<stdio.h>
main(){
int i, X[5];
for(i=0; i<5; i ++) {
printf("Digite o Vetor X[%i]= ",i);
scanf("%i", &X[i]);
}
getch();
}
Simulao da leitura
Varivel: i
1
2
3
4
5
95
0
13
1
-25
2
Tela
Digite o 1 nmero: 95
Digite o 2 nmero: 13
Digite o 3 nmero: -25
Digite o 4 nmero: 45
Digite o 5 nmero: 88
45
3
88
4
Linguagem C
#include<stdio.h>
main(){
int i, X[5]={1,2,3,4,5};
for(i=0; i<5; i ++)
{
printf("Vetor X[%d]: %d \n",i+1, X[i]);
}
getch();
}
Simulao da apresentao
Varivel: i
Tela
0
Vetor X[1]: 95
1
Vetor X[2]: 13
2
Vetor X[3]: -25
3
Vetor X[4]: 45
4
Vetor X[5]: 88
Linguagem C++
#include <iostream>
using namespace std;
int main(){
int i, X[5]={1,2,3,4,5};
for(i=0; i<5; i ++)
{
cout <<"Vetor X["<<i+1<<"]: "<<X[i]<<endl;
}
system(pause>null);
}
37
Linguagem C
#include<stdio.h>
main(){
int vet[4],pos;
for (pos=0; pos < 4; pos++)
{
printf("Digite qualquer valor para o
vetor[%i]: ",pos+1);
scanf("%i", &vet[pos]);
}
//impresso do que foi digitado no vetor
for (pos=0; pos < 4; pos++)
{
printf("%i",vet[pos]);
printf("\n");
}
getch();
}
38
13. Escreva um programa que crie um vetor inicialmente zerado e insira um valor no vetor,
numa posio informada. Por exemplo, para o vetor vazio v = { }, posio 4 e valor 10,
o programa deve gerar v={ , , ,10}. Se a posio for 2 e o valor 5, o vetor ficara
v = { , 5, ,10}. E assim, sucessivamente. Caso a posio esteja ocupada, os valores
devem ser remanejados, de modo a deixar a posio escolhida, livre para a insero
do novo valor, o vetor ficara v = { , 23, 5, ,10}. Mostre o vetor aps as inseres.
14. Uma empresa necessita de um sistema que
valide senhas. A regra para cadastro dessa
senha que a mesma deve conter 2
nmeros e 6 caracteres. Crie um algoritmo
que use vetor e que atenda ao cadastro
correto da mesma se isso no acontecer
pea para digitar novamente, conforme
apresenta o exemplo.
15. Para fazer o cadastro do FACEBOOK o
usurio deve preencher vrios dados,
inclusive um e-mail vlido, ou seja, um e-mail
deve conter no mnimo um @ e um .. Crie
um algoritmo que identifique se um e-mail
vlido ou no. Use vetor de char.
16. Uma empresa possui um cadastro de dez
funcionrios, mas apenas pode armazenar
suas informaes de forma informatizada por
meio de vetores, ou seja, um vetor de salrio, outro com nome, outro com quantidade
de filhos dos funcionrios. Crie um programa para cadastrar esses dados, para
consultar por nome (mostre o salrio normal e tambm considerando os dependentes,
caso exista), mostre o montante dos salrios pagos, lembrando que um funcionrio
ganha por dependente R$ 20,00. Mostre tambm quantos funcionrios tem filhos.
17. A partir da digitao de uma frase (use um vetor de caracteres), conte a quantidade de
vogais, para isso crie dois vetores de mesmo tamanho, um para armazenar as vogais
e outro para armazenar a quantidade (zere esse vetor), ao final mostre uma frase
explicando que determinada vogal apareceu na frase tantas vezes, conforme mostra a
figura a seguir.
Exemplo:
B O A S
0
F R
A S
Vetor de vogais
10
P A R A
11
12
13
Resultado
Vetor de quantidades
14
15
T O D O S
16
17
18
19
20
21
39
ARRAY MATRIZ
Uma matriz uma varivel composta homognea bidimensional formada por uma
sequncia de variveis, todas do mesmo tipo, com o mesmo identificador (mesmo nome)
e alocadas sequencialmente na memria. Uma vez que as variveis tm o mesmo nome,
o que as distingue so ndices que referenciam sua localizao dentro da estrutura. Uma
varivel do tipo matriz composta por linhas e colunas.
Declarao de Matriz
Sintaxe:
Tipo Nome[qtde de linhas][qtde de colunas];
Onde tipo o tido de dados, nome o nome da varivel do tipo matriz, linha a
quantidade de linhas que vo compor a matriz, coluna a quantidade de colunas
que vo compor a matriz e que poder ser armazenado na sequncia de variveis
que formam a matriz.
Exemplo:
int X[3][5];// Esta matriz ter 3 linhas e 5 colunas para cada linha.
Atribuindo Valores a Matriz
X[0][2] = 45;
X[1][0] = 13;
0
0
1
2
1
45
X[1][4] = 0;
3
13
X[2][3] = -4;
4
0
-4
Inicializando a matriz
int matriz [ ][ ] = { {1,2,3,4,5}, {2,,4,6,8,10}, {3,6,9,12,15} };
Representando a matriz inicializada
0
1
2
0
1
2
2
1
2
4
6
2
3
6
9
3
4
8
12
4
5
10
15
Linguagem C++
#include <iostream>
using namespace std;
int main(){
int L,C, X[3][5];
for(L=0; L<3; L ++)
{
for(C=0; C<5; C ++) {
cout <<Matriz[<<L<<][<<C<<]: ;
cin >> X[L][C];
}
}
system(pause>null);
}
40
Portugol
Algoritmo Vetor
incio
inteiro X[3][5];
escreva(Digite os valores para a matriz);
Para L de 1 at 3 incremento de 1
Incio
Para C de 1 at 5 incremento de
Incio
escreva ( X[L][C] ) ;
Fim;
Fim;
fim
Linguagem C++
#include <iostream>
using namespace std;
int main(){
int L,C, X[3][5];
for(L=0; L<3; L ++)
{
for(C=0; C<5; C ++) {
cout << X[L][C];
}
}
system(pause>null);
}
41
42
10. Faa um algoritmo que receba as vendas semanais (de um ms) de 5 vendedores de
uma loja e armazene essas vendas em uma matriz. Calcule e exiba:
Total de vendas do ms (4 semanas) de cada vendedor;
Total de vendas de cada semana (todos os vendedores juntos);
Total de vendas do ms.