Escolar Documentos
Profissional Documentos
Cultura Documentos
DicasAlgoritmosLinguagemC V14 PDF
DicasAlgoritmosLinguagemC V14 PDF
Belo Horizonte
2009
Sumrio
1 Nota: ..................................................................................................................................... 2
2 Comandos e Palavras Reservadas: ....................................................................................... 3
3 Dicas ..................................................................................................................................... 4
3.1 Strings em Linguagem C / C++ ..................................................................................... 4
3.1.1 Ao Imprimir tem Lixo na Varivel Junto ao Valor Armazenado:.......................... 4
3.1.2 Em Tempo de Execuo o Programa est Pulando Dois ou Mais Campos ao
Mesmo Tempo: ..................................................................................................................... 4
3.1.3 Como Apagar um Campo String: ........................................................................... 6
3.1.4 Como Atribuir Valores a Uma Varivel do Tipo String: ....................................... 7
4 Exemplos de Algoritmos em Linguagem Algortmica e Seu Respectivo Cdigo em
Linguagem C/C++ ...................................................................................................................... 10
4.1 Algoritmo usando estrutura LINEAR .......................................................................... 10
4.2 Algoritmo usando estrutura condicional SE ................................................................ 10
4.3 Algoritmo usando estrutura de excluso mltipla CASE ............................................ 12
4.4 Algoritmo usando estrutura de repetio ENQUANTO .............................................. 14
4.5 Algoritmo usando estrutura de repetio REPITA ... ENQUANTO ........................... 15
4.6 Algoritmo usando estrutura de repetio PARA ......................................................... 16
4.7 Algoritmo usando VETOR .......................................................................................... 17
4.8 Algoritmo usando MATRIZ ........................................................................................ 18
4.9 Algoritmo usando REGISTRO (tipo) .......................................................................... 19
4.10 Algoritmo usando REGISTRO em VETOR ............................................................ 21
4.11 Algoritmo usando REGISTRO em MATRIZ .......................................................... 23
4.12 Algoritmo usando FUNO ................................................................................... 26
Algoritmo e Linguagem C/C++ - Dicas
Prof. Edwar Saliba Jr. Verso 1.3
1 Nota:
Os cdigos em Linguagem C apresentados neste trabalho foram criados
utilizando a ferramenta conhecida por Dev-C++ verso 4.9.9.2.
Esta ferramenta poder ser adquirida gratuitamente no site abaixo:
http://www.bloodshed.net/devcpp.html
2 ComandosePalavrasReservadas:
Como mecanismo facilitador, vejamos a tabela abaixo relativa a alguns
comandos bsicos e palavras reservadas existentes em algoritmos, e
respectivamente em Linguagem C/C++.
Operadores:
Operador Smbolo
Adio +
Subtrao -
Diviso /
Multiplicao *
Mdulo (resto da diviso %
inteira)
3 Dicas
3.1 StringsemLinguagemC/C++
3.1.1 AoImprimirtemLixonaVarivelJuntoaoValorArmazenado:
dd/mm/aaaa
char data[10];
char data[11];
3.1.2 EmTempodeExecuooProgramaestPulandoDoisouMaisCampos
aoMesmoTempo:
(01)#include <cstdlib>
(02)#include <iostream>
(24) system("PAUSE");
(25) return EXIT_SUCCESS;
(26)}
O usurio deste notar que ao apertar tecla <Enter> aps ter digitado
o nmero do identificador (linha 11), o programa saltar
diretamente para o campo data de nascimento (linha 15) sem pedir os
dados para o campo nome (linha 13).
(01)#include <cstdlib>
(02)#include <iostream>
(25) system("PAUSE");
(26) return EXIT_SUCCESS;
(27)}
Sempre que for usar um comando para leitura de strings via teclado (o
comando gets, por exemplo), antes de us-lo escreva um comando
fflush(stdin), para garantir que o buffer estar vazio no momento da
execuo do comando gets.
3.1.3 ComoApagarumCampoString:
char nome[50];
nome[0] = \0;
3.1.4 ComoAtribuirValoresaUmaVariveldoTipoString:
3.1.4.1 Exemplodeleituraeescritadeumcaracter:
#include <cstdlib>
#include <iostream>
Letra2 = 'E';
system("PAUSE");
return EXIT_SUCCESS;
}
3.1.4.2 Exemplodeleituraeescritadevrioscaracteres:
#include <cstdlib>
#include <iostream>
cout << "\nA palavra digitada na varivel Palavra1 foi: " <<
Palavra1;
cout << "\nA palavra digitada na varivel Palavra2 foi: " <<
Palavra2;
cout << "\nA palavra digitada na varivel Palavra3 foi: " <<
Palavra3;
cout << "\nA palavra digitada na varivel Palavra4 foi: " <<
Palavra4 << "\n\n";
system("PAUSE");
return EXIT_SUCCESS;
}
4 ExemplosdeAlgoritmosemLinguagemAlgortmicaeSeu
RespectivoCdigoemLinguagemC/C++
4.1 AlgoritmousandoestruturaLINEAR
inicio
declare val1, val2, soma : real;
#include <cstdlib>
#include <iostream>
system("PAUSE");
return EXIT_SUCCESS;
}
4.2 AlgoritmousandoestruturacondicionalSE
incio
declare n1, n2, n3, n4, media : real;
#include <cstdlib>
#include <iostream>
if (media >= 6) {
cout <<"\n\nO aluno foi APROVADO!\n\n";
}
else {
cout <<"\n\nO aluno foi REPROVADO!\n\n";
}
system("PAUSE");
return EXIT_SUCCESS;
}
4.3 AlgoritmousandoestruturadeexclusomltiplaCASE
Menu de opes:
1 Somar
2 Subtrair
3 Multiplicar
4 - Dividir
incio
declare valor1, valor2, res : real;
declare operacao : inteiro;
#include <cstdlib>
#include <iostream>
switch (operacao) {
case 1:
res = valor1 + valor2;
break;
case 2:
res = valor1 - valor2;
break;
case 3:
res = valor1 * valor2;
break;
case 4:
if (! (valor2 == 0)) {
res = valor1 / valor2;
}
else {
cout << "\n\nErro de diviso por zero!\n\n";
}
break;
default:
cout << "\n\nOpo escolhida invlida!\n\n";
}
system("PAUSE");
return EXIT_SUCCESS;
}
4.4 AlgoritmousandoestruturaderepetioENQUANTO
incio
declare valini, valfin, soma : real;
soma valini;
#include <cstdlib>
#include <iostream>
soma = valini;
cout << "\n\nA soma total : " << soma << "\n\n";
system("PAUSE");
return EXIT_SUCCESS;
}
4.5 AlgoritmousandoestruturaderepetioREPITA...ENQUANTO
incio
declare opcao : inteiro;
repita
escreva Opes;
escreva 1 - Incluso;
escreva 2 - Excluso;
escreva 3 - Alterao;
escreva 4 - Sair;
escreva Escolha uma opo: ;
leia opcao;
enquanto ((opcao < 1) ou (opo > 4));
=================================================
#include <cstdlib>
#include <iostream>
do {
cout << "\n\nOpes";
cout << "\n\n1 - Incluso";
cout << "\n2 - Excluso";
cout << "\n3 - Alterao";
cout << "\n4 - Sair";
cout << "\n\nEscolha uma opo: ";
cin >> opcao;
} while ((opcao < 1) || (opcao > 4));
switch (opcao) {
case 1:
cout << "\n\nA opo escolhida foi: Incluso.\n\n";
break;
case 2:
cout << "\n\nA opo escolhida foi: Excluso.\n\n";
break;
case 3:
cout << "\n\nA opo escolhida foi: Alterao.\n\n";
break;
case 4:
cout << "\n\nA opo escolhida foi: Sair.\n\n";
}
system("PAUSE");
return EXIT_SUCCESS;
}
4.6 AlgoritmousandoestruturaderepetioPARA
incio
declare num, cont : inteiro;
fim para
fim
#include <cstdlib>
#include <iostream>
system("PAUSE");
return EXIT_SUCCESS;
}
4.7 AlgoritmousandoVETOR
incio
declare num[10], i : inteiro;
#include <cstdlib>
#include <iostream>
system("PAUSE");
return EXIT_SUCCESS;
}
4.8 AlgoritmousandoMATRIZ
incio
declare num[4][4], i, j : inteiro;
#include <cstdlib>
#include <iostream>
system("PAUSE");
return EXIT_SUCCESS;
}
4.9 AlgoritmousandoREGISTRO(tipo)
tipo funcionario
codigo : inteiro;
nome : texto;
dataAdmissao : texto;
dataNascimento : texto;
sexo : carcter;
fim tipo;
incio
declare func : funcionario;
declare resp : carcter;
leia func.nome;
escreva Digite a data de admisso do funcionrio: ;
leia func.dataAdmissao;
escreva Digite a data de nascimento do funcionrio: ;
leia func.dataNascimento;
escreva Digite o sexo do funcionrio (M/F): ;
leia func.sexo;
se (resp = s) ento
escreva === Dados do funcionrio ===;
escreva Cdigo: , func.codigo;
escreva Nome : , func.nome;
escreva Data de Admisso: , func.dataAdmissao;
escreva Data de Nascimento: , func.dataNascimento;
escreva Sexo : , func.sexo;
fim se
fim
#include <cstdlib>
#include <iostream>
struct funcionario {
int codigo;
char nome[50];
char dataAdmissao[11];
char dataNascimento[11];
char sexo;
};
system("PAUSE");
return EXIT_SUCCESS;
}
4.10 AlgoritmousandoREGISTROemVETOR
Elabore um algoritmo para cadastrar 1000 funcionrios. Para cada
funcionrio devem-se cadastrar os seguintes dados: cdigo, nome, data
de admisso, data de nascimento e sexo. Aps cadastrar o(s)
funcionrio(s), mostrar os dados.
tipo funcionario
codigo : inteiro;
nome : texto;
dataAdmissao : texto;
dataNascimento : texto;
sexo : carcter;
fim tipo;
incio
declare func[1000] : funcionario;
declare resp : carcter;
declare cont, aux_cont : inteiro;
cont 0;
resp s;
leia func[cont].sexo;
cont cont + 1;
resp n;
escreva Deseja visualizar o(s) cadastro(s) realizado(s)? (S/N):
;
leia resp;
se (resp = s) ento
aux_cont 0;
aux_cont aux_cont + 1;
fim enquanto
fim se
fim
#include <cstdlib>
#include <iostream>
struct funcionario {
int codigo;
char nome[50];
char dataAdmissao[11];
char dataNascimento[11];
char sexo;
};
cont = 0;
resp = 's';
resp = 'n';
cout << "\n\nDeseja visualizar os dados cadastrados? (S/N): ";
cin >> resp;
fflush(stdin);
aux_cont++;
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
4.11 AlgoritmousandoREGISTROemMATRIZ
tipo funcionario
codigo : inteiro;
nome : texto;
dataAdmissao : texto;
dataNascimento : texto;
sexo : carcter;
fim tipo;
incio
declare func[30][40] : funcionario;
declare resp : carcter;
declare x, y, aux_x, aux_y : inteiro;
resp s;
y 0;
enquanto ((y < 30) e (resp = s)) ento
x 0;
enquanto ((x < 40) e (resp = s)) faa
escreva Digite o cdigo do funcionrio: ;
leia func[y][x].codigo;
escreva Digite o nome do funcionrio: ;
leia func[y][x].nome;
escreva Digite a data de admisso do funcionrio: ;
leia func[y][x].dataAdmissao;
escreva Digite a data de nascimento do funcionrio:
;
leia func[y][x].dataNascimento;
escreva Digite o sexo do funcionrio (M/F): ;
leia func[y][x].sexo;
x x + 1;
y y + 1;
fim enquanto
resp n;
escreva Deseja visualizar o(s) cadastro(s) realizado(s)? (S/N):
;
leia resp;
se (resp = s) ento
aux_y 0;
enquanto (aux_y < y) faa
aux_x 0;
enquanto (aux_x < x) faa
escreva === Dados do funcionrio ===;
escreva Cdigo: , func[aux_y][aux_x].codigo;
escreva Nome : , func[aux_y][aux_x].nome;
aux_x aux_x + 1;
fim enquanto
aux_y aux_y + 1;
fim enquanto
fim se
fim
#include <cstdlib>
#include <iostream>
struct funcionario {
int codigo;
char nome[50];
char dataAdmissao[11];
char dataNascimento[11];
char sexo;
};
resp = 's';
y = 0;
while ((y < 30) && ((resp == 's') || (resp == 'S'))) {
x = 0;
while ((x < 40) && ((resp == 's') || (resp == 'S'))) {
cout << "\n\nDigite o cdigo do funcionrio: ";
cin >> func[y][x].codigo;
fflush(stdin);
cout << "Digite o nome do funcionrio: ";
gets (func[y][x].nome);
cout << "Digite a data de admisso do funcionrio:
";
gets (func[y][x].dataAdmissao);
cout << "Digite a data de nascimento do funcionrio:
";
gets (func[y][x].dataNascimento);
cout << "Digite o sexo do funcionrio (M/F): ";
cin >> func[y][x].sexo;
fflush(stdin);
x++; /* x = x + 1; */
y++;
}
resp = 'n';
cout << "\n\nDeseja visualizar os dados cadastrados? (S/N): ";
cin >> resp;
fflush(stdin);
aux_x++;
}
aux_y++;
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
4.12 AlgoritmousandoFUNO
total v1 + v2;
retorne (total);
fim funo
total v1 - v2;
retorne (total);
fim funo
total v1 * v2;
retorne (total);
fim funo
total 0;
retorne (total);
fim funo
incio
declare valor1, valor2, res : real;
declare operacao : inteiro;
fim
2 : incio
res subtracao (valor1,valor2);
fim
3 : incio
res multiplicacao (valor1,valor2);
fim
4 : incio
res divisao (valor1,valor2);
fim
exceo : incio
escreva Opo escolhida invlida!;
fim
fim caso
#include <cstdlib>
#include <iostream>
total = v1 + v2;
return (total);
}
total = v1 - v2;
return (total);
}
total = v1 * v2;
return (total);
}
total = 0;
if (v2 != 0) {
total = v1 / v2;
}
else {
cout << "\n\nErro de diviso por zero!";
}
return (total);
}
switch (operacao) {
case 1:
res = adicao (valor1,valor2);
break;
case 2:
res = subtracao (valor1,valor2);
break;
case 3:
res = multiplicacao (valor1,valor2);
break;
case 4:
res = divisao (valor1,valor2);
break;
default:
cout << " \n\nOpo escolhida invlida!\n\n";
}
system("PAUSE");
return EXIT_SUCCESS;