guia para traducao algoritmos x l ps
DESCRIPTION
guia prático para "tradução" de algoritmos para linguagel de programaçãoTRANSCRIPT
GUIA PARA TRADUÇÃO DE ALGORITMO PARA LINGUAGENS C e PASCAL
1 - INTRODUÇÃO Este guia tem por objetivo ajudá-lo a entender como transpor (traduzir) algoritmos para programas em uma linguagem de programação (no caso, a linguagem C e a linguagem Pascal) e aplicar todo o conhecimento adquirido sobre criação de algoritmos e lógica de programação para criar programas nessas linguagens de programação. O essencial neste ponto é que você já conheça as estruturas básicas de criação de algoritmos (seqüencial, condicionais e repetição) e saiba criar algoritmos em pseudocódigo usando elas. Observe que você não deve usar a “tradução” de algoritmos como uma prática para a programação. O objetivo aqui é ajudá-lo nos primeiros passos na programação em uma dessas linguagens. Após algum tempo de prática e exercícios, você já conhecerá a maior parte das palavras reservadas da linguagem e saberá como construir programas usando os manuais e guias de referência da mesma, visto que não é obrigação do programador “decorar” todos os comandos das linguagens de programação. Use este material sempre em conjunto com um livro, manual ou apostila de referência das linguagens. 2 – NOTAÇÃO UTILIZADA Neste material, onde você encontrar algo entre < > significa que você deve substituir tudo (inclusive o < > ) pelo que que está indicado entre os sinais < >. Onde você encontrar algo entre [ ] indica que este fragmento é opcional e pode ser omitido (inclusive o [ ] ). 3 – ESTRUTURAS GERAIS Estrutura Linguagem C Pascal Formato geral de um algoritmo: Variaveis <declaração de variáveis> Inicio <Blocos de comando> FimAlgoritmo Exemplo:
Variaveis
a,b: inteiro
Inicio
Escreval(“Olá!”)
FimAlgoritmo
<tipo> <nome da função>() { <declaração de variáveis> <comandos> } Exemplo: int main()
{
int a,b;
Printf(“Olá!\n”);
}
Var <declaração de variáveis> Begin <comandos> End; Exemplo: Var
a,b: integer
Begin
Writeln(‘Olá!’);
End; Caractere de final da linha de comando
; ;
Comentários em bloco /* comentário... Comentário.. */
(* comentário... comentário... *)
Comentários de uma linha // comentário // Comentário Bloco de comandos {
<comandos> }
Begin <comandos> End;
OBS: • EM C, as strings vêm entre aspas duplas e os tipos caractere ficam entre aspas simples • Em Pascal, tanto as strings quanto os tipos caracteres ficam entre aspas simples • A linguagem C diferencia palavras em letra minúsculas de palavras com letras maiúsculas, ou
seja, ela é “case sensitive”. Portanto´: o Devemos escrever todos os comandos em letras minúsculas, ou de forma idêntica a
como consta na documentação da linguagem o A variável num e Num são variáveis diferentes
• Já o Pascal não faz diferenciação de maiúscula e minúsculas
4 – TIPOS DE DADOS Algoritmos Linguagem C Pascal Inteiro Int
Modificadores: unsigned, long Integer Variações: Shortint, Smallint, Longint, Int64, Word, Longword
Real float Variações: double, long Double
real Variações: Single, Extended, comp, Currency
Caractere char char String char[n] // (vetor de caracteres) string
Variações: ShortString, AnsiString, WideString
Lógico (Booleano) OBS: A linguagem C não tem o tipo booleano. O valor inteiro zero é considerado FALSO e qualquer valor inteiro maior que zero é considerado VERDADEIRO .
boolean
5 – DECLARAÇÃO DE VARIÁVEIS Algoritmos Linguagem C Pascal As variáveis são declaradas na seção “Var” e o tipo vem após a lista de variáveis, separado por “:” (dois pontos): Variaveis
n1,n2: inteiro
Inicio
Escreva(“Digite n1: “)
Leia(n1)
Escreva(Digite n2: “)
Leia(n2)
FimAlgoritmo
As variáveis são declaradas dentro e logo no início do bloco de comandos e o tipo vem antes da lista de variáveis, sem o “:” : Int main()
{
int n1,n2;
printf(“Digite valor 1: “);
scanf(“%d”,&n1);
printf(“Digite valor 2: “);
scanf(“%d”,&n2);
}
As variáveis são declaradas na seção Var e o tipo vem após a lista de variáveis, separado por “:” (dois pontos): Var
n1, n2: integer
Begin
Write(‘Digite valor 1: ‘);
Readln(n1);
Write(‘Digite valor 2: ‘);
Readln(n2);
End;
6 – OPERADORES OPERADORES ARITMÉTICOS
Algoritmos Linguagem C Pascal - (inversão de sinal) - -
+ (valor positivo) + + ** (exponenciação) Pow(<base>,<expoente>) ^
* (multiplicação) * * / (divisão) / / + (adição) + +
- (subtração) - - OPERADORES RELACIONAIS
Algoritmos Linguagem C Pascal = == =
<> != <> < < < > > >
>= >= >= <= <= <=
OPERADORES LÓGICOS Algoritmos Linguagem C Pascal
OU || OR E && AND
NÃO ! NOT INCREMENTO E DECREMENTO DE VARIÁVEL
Algoritmos Linguagem C Pascal x <- x +1 x++ ou x += 1 x:=x+1 ou inc(x) x <- x + N x += N x:=x+N x <- x - 1 x-- ou x -= 1 x:=x-1 ou dec(x) x <- x - N x -= N X:=x - N
6 – VETORES, MATRIZES E REGISTROS Algoritmos Linguagem C Pascal Vetor[1..<tamanho>] de <tipo> <tipo> <variável>[<tamanho>]; array [1..<tamanho>] of <tipo>; Vetor[1..<lin>,1..<col>] de <tipo> <tipo> <variável>[<lin>][<col>]; Array [1..<lin>][1..<col>] of
<tipo>; 7 – COMANDOS E ESTRUTURAS DE PROGRAMAÇÃO Algoritmos Linguagem C Pascal Escreva printf(“<string>”,<parâmetros>); write(<parâmetros>);
Escreval printf(“<string>\n”,<parâmetros>); writeln(<parâmetros>);
Leia scanf(<string de controle>,<lista de
argumentos>);
Readln(<variável>);
Se <condição> Então
<comandos>
[Senão
<comandos>]
Fimse
if (<condição>)
<bloco de comandos>
[else
<bloco de comandos>
if <condição> then
<bloco de comandos>
Else
<bloco de comandos>
Escolha <variável>
caso <val.constante 1>:
<bloco de comandos 1> caso <val.constante 2>:
<bloco de comandos 2> ...
caso <val.constante n>:
<bloco de comandos n> outrocaso
<bloco de comandos
alternativo> FimEscolha
switch (<variável>)
{
case <constante_1>:
<declaração_1>;
break;
case <constante_2>:
<declaração_2>;
break;
. . .
case <constante_n>:
<declaração_n>;
break;
default
<declaração_padrão>;
}
Case <evariável> of
<ListaDeCaso1>: <comando1>;
<ListaDeCaso1>: <comando1>;
...
<ListaDeCasoN>: <comandoN>;
Else
<comando>;
End;
Para <variável> de <valor
inicial> ate <valor
final> [passo
<incremento>] faca
<comandos>
fimpara
for(<expressão de
inicialização>;<condição>;<expressão
de incremento>)
<bloco de comandos>
For <variável> := <valor
inicial> to / downto <valor
final> do
<bloco de comandos>
Enquanto <expr.lógica>
faca
<bloco de comandos> FimEnquanto
while(<condição>)
<bloco de comandos>
While <condição> do
<bloco de comandos>
Repita
<bloco de comandos> Ate <expressão lógica>
do
<bloco de comandos>
While(<condição>);
Repeat
<bloco de comandos>
Until <expressão lógica>