Buscar

apostila2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 1/1 
 
II. CONSTRUÇÕES DA LÓGICA DE 
PROGRAMAÇÃO ESTRUTURADA 
 
Memória e reconhecimento humanos 
 
��Capacidade de reconhecer padrões como um todo. Ex. reconhecimento de um rosto 
��Capacidade de perceber o próximo elemento em uma seqüência 
 
Estas características psicológicas do ser humano afetam as características de Linguagens de 
Programação: 
��Localidade : blocos – seqüência de instruções organizadas num conjunto (um todo) 
com significado próprio; 
��Linearidade : A percepção humana é facilitada quando uma seqüência linear de 
operações lógicas é encontrada. Estruturas de laços e “braços” muito extensos, 
causados por desvios condicionais, violam a linearidade de um processo. 
 
Os processos de análise, projeto e programação estruturados visam gerar um procedimento 
de desenvolvimento de software que faz uso da capacidade natural humana de reconhecer padrões 
e utilizar estruturas lógica adequadas para facilitar a implementação com características de 
localidade e linearidade. 
 
É possível mostrar que 3 estruturas são suficientes para desenvolver programas 
estruturados. 
 
II.1. ESTRUTURA SEQÜENCIAL 
Conjunto de ações primitivas que serão executadas numa seqüência linear, ou seja, na 
mesma ordem em que foram escritas. 
A representação básica num diagrama de blocos é: 
 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 2/2 
 
No caso de uma linguagem natural estruturada, a representação é exatamente a indicada na 
definição, ou seja, uma seqüência de instruções primitivas, executadas de cima para baixo. As 
instruções, em nosso caso, serão terminadas com o símbolo “;”. 
Na linguagem Pascal as instruções também são terminadas com o símbolo “;”. 
 
II.2. ESTRUTURA CONDICIONAL (OU DE DECISÃO) 
Utilizada para definir se um bloco deve ou não ser executada, dependendo do resultado de 
uma condição. 
Para efeito didático, vamos dividir as estruturas condicionais em três, na ordem de aumento 
de complexidade. 
II.2.1. Estrutura condicional simples 
Utilizada para definir se um bloco de instruções deve ou não ser executado. 
 
Representação em diagrama de blocos: Representação em linguagem natural 
estruturada: 
 
Bloco de instruções 
executados se a 
condição for 
verdadeira 
condição 
Bloco de instruções 
executados quer a 
condição seja 
verdadeira ou falsa 
S N 
 
 
 
 
 
se (condição) então: 
Bloco de instruções para condição 
verdadeira 
fim_se 
 
Sintaxe na linguagem de programação Pascal 
 
if condição 
 then begin 
 Bloco de instruções para condição verdadeira; 
 end 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 3/3 
 
Sintaxe na linguagem de programação C 
if (condição ) 
{ 
 bloco de instruções, cada uma terminada por um símbolo “;” 
} 
 
II.2.2. Estrutura condicional composta 
Utilizada para definir qual bloco de instruções deve ser executado. 
 
Representação em diagrama de blocos: Representação em linguagem natural 
estruturada: 
 
Bloco de instruções 
executadas se a 
condição for 
verdadeira 
condição 
Bloco de instruções 
executados quer a 
condição seja 
verdadeira ou falsa 
Bloco de instruções 
executadas se a 
condição for falsa 
S N 
 
 
 
 
 
se (condição) então: 
Bloco de instruções para condição 
verdadeira 
senão 
Bloco de instruções para condição falsa 
fim_se 
Sintaxe na linguagem de programação Pascal 
 
if condição 
 then begin 
 bloco de instruções para condição verdadeira 
 end 
 else begin 
 bloco de instruções para condição falsa 
 end; (* Note o uso do símbolo “;” para indicar o fim do comando *) 
 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 4/4 
 
Sintaxe na linguagem de programação C 
If (condição) 
{ /* inicio do bloco executado se condição verdadeira*/ 
 bloco de instruções para condição verdadeira 
} /* fim do bloco executado se condição verdadeira*/ 
else 
{ /* inicio do bloco executado se condição falsa*/ 
 bloco de instruções para condição falsa 
} /* fim do bloco executado se condição falsa*/ 
 
II.2.3. Estrutura condicional encadeada ou aninhada 
Permite agrupar várias alternativas de forma a inspecionar uma ou mais condições. 
Utilizada para definir qual bloco de instruções, de um conjunto finito, deve ser executado, 
dependendo da alternativa satisfeita. 
 
Representação em diagrama de blocos: Representação em linguagem natural 
estruturada: 
 
Bloco de instruções 
executadas se a 
condição for 
verdadeira 
condição 1 
Bloco de instruções 
executados quer a 
condição seja 
verdadeira ou falsa 
S N 
Bloco de instruções 
executadas se a 
condição 2 for 
verdadeira e a 
condição 1 falsa 
condição 2 
Bloco de instruções 
executadas se a 
condição 2 for falsa e 
a condição 1 falsa 
S N 
 
 
se (condição 1) então: 
Bloco de instruções para condição 1 
verdadeira 
senão 
se (condição 2) então: 
Bloco de instruções para 
condição 2 verdadeira mas 
com condição 1 falsa 
senão 
Bloco de instruções para 
condição 2 falsa e condição 1 
falsa 
fim_se 
fim_se 
 
 
 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 5/5 
 
 
Sintaxe na linguagem de programação Pascal 
if condição1 
 then begin (* inicio do bloco executado se condição 1 verdadeira*) 
 bloco de instruções executadas se condição 1 é verdadeira 
 end (* fim do bloco executado se condição verdadeira*) 
else begin (* inicio do bloco executado se condição 1 é falsa*) 
 if condição2 
 then begin (* inicio do bloco executado se condição 2 verdadeira *) 
 bloco de instruções executadas se condição 2 é verdadeira e a condição 1 é falsa 
 end (* fim do bloco executado se condição 2 verdadeira*) 
 else begin (* inicio do bloco executado se condição 2 é falsa*) 
 bloco de instruções executadas se ambas as condições 2 e 1 são falsas 
 end; /* fim do bloco executado se condição 2 é falsa*/ 
 end; /* fim do bloco executado se condição 1 é falsa*/ 
 
Sintaxe na linguagem de programação C 
if (condição 1) 
{ /* inicio do bloco executado se condição 1 verdadeira*/ 
 
 bloco de instruções executadas se condição 1 é verdadeira 
} /* fim do bloco executado se condição verdadeira*/ 
else 
{ /* inicio do bloco executado se condição 1 é falsa*/ 
if (condição 2) 
{ /* inicio do bloco executado se condição 2 verdadeira*/ 
 bloco de instruções executadas se condição 2 é verdadeira e a condição 1 é falsa 
} /* fim do bloco executado se condição 2 verdadeira*/ 
else 
{ /* inicio do bloco executado se condição 2 é falsa*/ 
 bloco de instruções executadas se ambas as condições 2 e 1 são falsas 
} /* fim do bloco executado se condição 2 é falsa*/ 
} /* fim do bloco executado se condição 1 é falsa*/ 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 6/6 
 
A estrutura condicional encadeada apresentada acima pode ser substituída por uma forma 
mais compacta, denominada alternativa de múltiplaescolha. Sua representação é apresentada a 
seguir: 
 
 
Representação em diagrama de blocos: 
 
 
 
expressão 
Bloco de instruções 
executadas se a 
expressão é igual à 
constante C1 
Bloco de instruções 
executadas se a 
expressão é igual à 
constante C2 
C1 C2 
Bloco de instruções 
executadas se a 
expressão é igual à 
constante Cn 
Bloco de instruções 
executadas se a 
expressão é igual à 
constante Cn-1 
Cn Cn-1 
. . . 
 
 
 
Representação em linguagem natural estruturada: 
 
 
 
caso (expressão) igual a: 
C1: 
 Bloco de instruções para expressão igual a C1 
 C2: 
 Bloco de instruções para expressão igual a C2 
Cn-1: 
 Bloco de instruções para expressão igual a Cn-1 
 Cn: 
 Bloco de instruções para expressão igual a Cn 
fim_caso; 
 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 7/7 
 
Sintaxe na linguagem de programação Pascal 
case expressão of 
 C1: (* inicio do bloco executado se a expressão resulta valor igual ao da constante C1 *) 
begin 
bloco de instruções executadas se a expressão resulta valor igual ao da constante C1 
 end ; (* fim do bloco *) 
C2: (* inicio do bloco executado se a expressão resulta valor igual ao da constante C2 *) 
begin 
bloco de instruções executadas se a expressão resulta valor igual ao da constante C2 
 end ; (* fim do bloco *) 
Cn-1: (* inicio do bloco executado se o valor da expressão é igual ao da constante Cn-1 *) 
begin 
bloco de instruções executadas se o valor da expressão é igual ao da constante Cn 
 end ; (* fim do bloco *) 
end; (* fim do bloco case*) 
 
Sintaxe na linguagem de programação C 
switch (expressão) 
{ /* início do bloco switch */ 
 case C1: 
bloco de instruções executadas se a expressão resulta valor igual ao da constante C1 
 break; /* interrompe a execução do bloco switch */ 
 /* se a instrução break não é utilizada, a execução continua na */ 
 /* primeira instrução executável do bloco do case C2! */ 
case C2: 
bloco de instruções executadas se a expressão resulta valor igual ao da constante C2 
 break; 
case Cn-1: 
bloco de instruções executadas se o valor da expressão é igual ao da constante Cn-1 
 break; 
case Cn: 
bloco de instruções executadas se o valor da expressão é igual ao da constante Cn 
 break; 
default : 
bloco de instruções executadas se o valor da expressão não coincide com nenhuma das constantes 
anteriores. Este rótulo é opcional! 
} /* fim do bloco switch-case */ 
 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 8/8 
 
II.2.4. Operadores condicionais (relacionais e lógicos) 
Em Pascal: 
RELACIONAIS LÓGICOS 
= (igual) <> (diferente) <= (menor ou igual) AND / and (e) 
< menor > maior >= maior ou igual OR / or (ou) 
 IN (contido em – 
conjunto) 
 NOT / not (negação) 
 
Em C ( e C++): 
RELACIONAIS (binários) LÓGICOS 
= =(igual) != (diferente) <= (menor ou igual) && (e – binário) 
< menor > maior >= maior ou igual || (ou – binário) 
 ! (negação - unário) 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 9/9 
 
II.3. ESTRUTURAS DE REPETIÇÃO (OU LAÇO) 
II.3.1. Estrutura com teste lógico no início do laço (Enquanto) 
 
Permite executar um bloco repetidas vezes, desde que uma condição seja previamente 
satisfeita. 
Representação em diagrama de blocos: Representação em linguagem natural 
estruturada: 
 
Bloco de instruções 
executadas enquanto 
a condição for 
verdadeira 
condição 
Bloco de instruções 
executadas após a 
condição não ser 
satisfeita 
S 
N 
 
 
 
 
 
enquanto (condição) faça: 
Bloco de instruções para condição 
verdadeira 
fim_enquanto 
Sintaxe na linguagem de programação Pascal 
while expressão lógica do 
 begin 
 bloco de instruções executadas enquanto a expressão lógica for avaliada como verdadeira 
 end; 
 
Sintaxe na linguagem de programação C 
while (expressão lógica) 
{ /* inicio do bloco executado se condição verdadeira*/ 
 bloco de instruções executadas enquanto a expressão lógica for avaliada como verdadeira 
} /* fim do bloco */ 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 10/10 
 
 
 
II.3.2. Estrutura com teste lógico no fim do laço (Repita) 
Também permite executar um bloco repetidas vezes, mas, diferente do caso com teste 
lógico no início do laço, o bloco é executado pelo menos uma vez. 
Outra questão importante é a diferença de comportamento deste tipo de estrutura nas 
linguagens de programação Pascal e C. O leitor deve estar muito atento a estas diferenças. 
 
 
 
Representação em diagrama de blocos 
(conforme a linguagem Pascal) 
Representação em linguagem natural estruturada 
(conforme a linguagem Pascal): 
 
Bloco de instruções 
executadas enquanto 
a condição for falsa 
condição 
S 
N 
Bloco de instruções 
executadas a partir do 
momento em que a 
condição é verdadeira 
 
 
 
 
 
repita 
Bloco de instruções 
ate que expressão lógica 
Sintaxe na linguagem de programação Pascal 
repeat 
 bloco de instruções executadas enquanto a expressão lógica for avaliada como falsa 
until expressão lógica; 
 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 11/11 
 
 
Representação em diagrama de blocos 
(conforme a linguagem C) 
Representação em linguagem natural estruturada 
(conforme a linguagem C): 
 
Bloco de instruções 
executadas enquanto 
a condição for 
verdadeira 
condição S 
N 
Bloco de instruções 
executadas a partir do 
momento em que a 
condição é falsa 
 
 
 
 
 
repita 
Bloco de instruções 
enquanto expressão lógica 
Sintaxe na linguagem de programação C 
do 
{ /* inicio do bloco */ 
 bloco de instruções executadas enquanto a expressão lógica for avaliada como verdadeira 
} while (expressão lógica); /* fim do bloco */ 
 
 
II.3.3. Estrutura com variável de controle (Para) 
Nas estruturas de repetição apresentadas anteriormente, a execução de um bloco é repetida 
enquanto uma expressão lógica é verdadeira ( ou falsa no caso da estrutura repeat – until do 
Pascal). Portanto, o número de vezes que o bloco é executado não está definido a priori. 
As estruturas de repetição com variável de controle permite executar um certo bloco um 
número definido de vezes. O controle do número de repetições é feito automaticamente por meio 
de uma variável de controle, a qual é atualizada (incrementada ou decrementada) após cada 
execução do bloco. 
 
Representação em 
diagrama de blocos: 
Representação em linguagem natural estruturada: 
 para <var_controle> de <início> até <n_rep> passo <incremento> faça 
Bloco de instruções repetido até que var_controle seja igual a 
n_rep 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 12/12 
 
fim_para 
 
 
Sintaxe na linguagem de programação Pascal 
 
 
for var_controle := inicio to final do 
 beginbloco de instruções executadas enquanto a expressão lógica for avaliada como verdadeira 
 end; 
 
 
Sintaxe na linguagem de programação C/C++ 
 
 
for (instruções de inicialização; expressão lógica; instruções iterativas) 
{ /* inicio do bloco executado se condição verdadeira*/ 
 bloco de instruções executadas enquanto a expressão lógica for avaliada como verdadeira 
} /* fim do bloco */ 
 
 
Instruções de inicialização : são instruções executadas uma única vez, antes da primeira 
estimativa da expressão lógica. 
Expressão lógica : Se a expressão é avaliada verdadeira, o bloco de instruções é executado. 
Instruções de iterativas : são executadas após o conjunto de instruções contidas no bloco 
for. 
 
A instrução de repetição com variável de controle em linguagem C/C++ é muito poderosa, 
podendo ser utilizada de forma mais ampla do que o possível com a estrutura simlar da linguagem 
Pascal. Informação adicional sobre esta instrução e sua sintaxe em linguagem C/C++ será fornecida 
em capítulo posterior. 
 
 
 
APOSTILA : LINGUAGENS DE PROGRAMAÇÃO C E C++ 
Prof. Angelo Passaro página 13/13 
 
BIBLIOGRAFIA BÁSICA 
 
 
HARRY, Farrer et al.; Programação estruturada de computadores: algorítmos 
estruturados; Guanabara, 1986. 
 
HARRY, Farrer et al.; Programação estruturada de computadores: Pascal 
estruturado; Guanabara, 1985 
 
 
 
BIBLIOGRAFIA COMPLEMENTAR 
 
 
Tremblay, JEAN Paul & BUNT, Richard B.; Ciência dos computadores - Uma 
abordagem algorítmica; McGraw-Hill, 1988. 
 
CHEZZI, Carlo & JAZAYERI, Nedhi; Conceitos de linguagens de programação; 
Campus, 1985.

Outros materiais