Microprocessadores ii revisão de linguagem de programação (parte2)
Guia para traducao algoritmos x l ps
1. 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
Formato geral de um algoritmo:
Linguagem C
Pascal
Variaveis
<declaração de variáveis>
Inicio
<Blocos de comando>
FimAlgoritmo
<tipo> <nome da função>()
{
<declaração de variáveis>
<comandos>
}
Var
<declaração de variáveis>
Begin
<comandos>
End;
Exemplo:
Exemplo:
Exemplo:
Variaveis
a,b: inteiro
Inicio
Escreval(“Olá!”)
FimAlgoritmo
Caractere de final da linha de
comando
Comentários em bloco
int main()
{
int a,b;
Printf(“Olá!n”);
}
;
Var
a,b: integer
Begin
Writeln(‘Olá!’);
End;
;
/* comentário...
Comentário..
*/
// comentário
{
<comandos>
}
(* comentário...
comentário...
*)
// Comentário
Begin
<comandos>
End;
Comentários de uma linha
Bloco de comandos
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
2. 4 – TIPOS DE DADOS
Algoritmos
Inteiro
Linguagem C
Int
Modificadores: unsigned, long
Real
float
Variações: double, long Double
Caractere
String
char
char[n] // (vetor de caracteres)
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 .
Pascal
Integer
Variações: Shortint, Smallint,
Longint, Int64, Word, Longword
real
Variações: Single, Extended,
comp, Currency
char
string
Variações:
ShortString,
AnsiString, WideString
boolean
5 – DECLARAÇÃO DE VARIÁVEIS
Algoritmos
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):
Linguagem C
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 “:” :
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
Int main()
{
int n1,n2;
Var
n1, n2: integer
Begin
Write(‘Digite valor 1: ‘);
Readln(n1);
Write(‘Digite valor 2: ‘);
Readln(n2);
End;
printf(“Digite valor 1: “);
scanf(“%d”,&n1);
printf(“Digite valor 2: “);
scanf(“%d”,&n2);
}
6 – OPERADORES
OPERADORES ARITMÉTICOS
Algoritmos
- (inversão de sinal)
+ (valor positivo)
** (exponenciação)
* (multiplicação)
/ (divisão)
+ (adição)
- (subtração)
Linguagem C
+
Pow(<base>,<expoente>)
*
/
+
-
Pascal
+
^
*
/
+
-
OPERADORES RELACIONAIS
Algoritmos
=
<>
<
>
>=
<=
Linguagem C
==
!=
<
>
>=
<=
Pascal
=
<>
<
>
>=
<=
3. OPERADORES LÓGICOS
Algoritmos
OU
E
NÃO
Linguagem C
||
&&
!
INCREMENTO E DECREMENTO DE VARIÁVEL
Algoritmos
Linguagem C
x <- x +1
x++ ou x += 1
x <- x + N
x += N
x <- x - 1
x-- ou x -= 1
x <- x - N
x -= N
Pascal
OR
AND
NOT
Pascal
x:=x+1 ou inc(x)
x:=x+N
x:=x-1 ou dec(x)
X:=x - N
6 – VETORES, MATRIZES E REGISTROS
Algoritmos
Vetor[1..<tamanho>] de <tipo>
Vetor[1..<lin>,1..<col>] de <tipo>
Linguagem C
<tipo> <variável>[<tamanho>];
<tipo> <variável>[<lin>][<col>];
Pascal
array [1..<tamanho>] of <tipo>;
Array
[1..<lin>][1..<col>]
of
<tipo>;
7 – COMANDOS E ESTRUTURAS DE PROGRAMAÇÃO
Algoritmos
Linguagem C
Pascal
Escreva
Escreval
Leia
printf(“<string>”,<parâmetros>);
printf(“<string>n”,<parâmetros>);
scanf(<string de controle>,<lista de
argumentos>);
if (<condição>)
<bloco de comandos>
[else
<bloco de comandos>
write(<parâmetros>);
writeln(<parâmetros>);
Readln(<variável>);
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>;
}
for(<expressão de
inicialização>;<condição>;<expressão
de incremento>)
<bloco de comandos>
Case <evariável> of
<ListaDeCaso1>: <comando1>;
<ListaDeCaso1>: <comando1>;
...
<ListaDeCasoN>: <comandoN>;
Else
<comando>;
End;
while(<condição>)
<bloco de comandos>
While <condição> do
<bloco de comandos>
do
Repeat
<bloco de comandos>
Until <expressão lógica>
Se <condição> Então
<comandos>
[Senão
<comandos>]
Fimse
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
Para <variável> de <valor
inicial>
ate
<valor
final>
[passo
<incremento>] faca
<comandos>
fimpara
Enquanto
<expr.lógica>
faca
<bloco de comandos>
FimEnquanto
Repita
<bloco de comandos>
Ate <expressão lógica>
<bloco de comandos>
While(<condição>);
if <condição> then
<bloco de comandos>
Else
<bloco de comandos>
For
<variável>
:=
inicial> to / downto
final> do
<bloco de comandos>
<valor
<valor