SlideShare una empresa de Scribd logo
1 de 18
Descargar para leer sin conexión
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 1
Algoritmos Computacionais ( Programas )
A partir deste tópico, consideramos a utilização do universo Computacional na
solução de problemas. Para tanto devemos lembrar que a transposição de
problemas do universo Real para o universo Computacional, é realizada através da
modelagem de problemas cuja solução já é conhecida e já foi expressa na forma de
algoritmo na linguagem natural, discutido no tópico anterior.
Na construção de algoritmos no tópico anterior, foram introduzidos conceitos
fundamentais, e suficiente, para a construção de algoritmos em uma linguagem
mais próxima da linguagem natural.
Algoritmos computacionais, ou programas de computadores, por outro lado,
requerem um nível de detalhamento mais próximo da linguagem computacional, de
modo que as ações representem comandos que possam ser entendidos e realizados
pelo computador.
Surge então uma questão:
Como saber se já temos detalhes suficientes em um programa
para que a AÇÃO possa ser entendida e realizada ?
A resposta a essa pergunta vai depender do agente que irá executar o programa. No
caso de algoritmos computacionais, sabemos que o computador possui um
conjunto limitado de instruções e que o programa deve ser expresso com estas
instruções.
Entretanto para facilitar a construção de algoritmos computacionais, as linguagens
de programação evoluiram de forma a aproximarem-se cada vez mais da linguagem
natural. Pseudolinguagens tentam aproximar ainda mais os algoritmos
computacionais da linguagem natural, sendo especialmente adequadas para
utilizacao em cursos introdutórios sobre a arte de programar computadores.
Neste trabalho utilizaremos uma pseudolinguagem, conhecida como PORTUGOL,
para aproximar a liguagem natural ao detalhamento das ações nos algoritmos
computacionais. A descrição de algoritmos em pseudo linguagens, além da
simplicidade, permitem mesclar regras e estruturas rígidas, com descrições de
ações em liguagem natural, tornando possível postergar destalhes minuciosos para
o momento de modelar o algoritmo na linguagem executável do computador.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 2
A principal vantagem do uso de pseudolinguagens é a flexibilidade, todavia a
utilização de ações especiais com regras definidas pode ajudar na modelagem e na
posterior transcrição do problema para o universo computacional. Neste aspecto
Portugol, tem a flexibilidade de poder ser adaptada facilmente as estruturas da
linguagem real.
PORTUGOL
PORTUGOL é uma pseudolinguagem que permite ao programador pensar no
problema em si e não no equipamento que irá executar o algoritmo. Em geral, a
medida que o programador vai ganhando experiência, existe a tendência de
utilização do PORTUGOL ainda no universo Real tornando mais fácil a transposição
do problema para o universo Computacional.
Todavia, devemos observar que mesmo com a utilização de pseudolinguagem na
modelagem de soluções, é importante considerar-mos a sintaxe (em relação à
forma) e a semântica (em relação ao conteúdo ou seu significado).
Lembre que na construção de algoritmo mostrada no tópico anterior, identificamos
dois conceitos básicos e fundamentais dos algoritmos.
Memória ( Estruturas de Dados ) para manipulação das informações.
Algoritmo ( Estruturas de Controle ) para manipulação das ações.
Esses conceitos estão representados nas linguagens de programação, reais ou
virtuais, através de variáveis (para representar a memória) e ações (para expressar a
solução na forma algoritmica).
A estrutura de um algoritmo em PORTUGOL pode ser dada como:
início
< declarações de variáveis > ( estrutura de dados )
< ações > ( algoritmo )
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 3
Variáveis
Variáveis são componentes das linguagens de programação, que identificam as
informações que estão sendo manipuladas pelos programas.
Uma variável é um local (área na memória do computador) que armazena um tipo
específico de conteúdo. Uma variável contém um valor que pode ser modificado
durante a execução do programa. A variável possui um identificador (nome), que
pode ser representado da seguinte forma:
O diagrama acima, mostra a forma como uma variável é declarada em função de
um tipo associado.
Tipos
O Tipo define duas características importantes:
1. Intervalo de valores possíveis.
Por exemplo: se pensarmos em números naturais, estamos identificando
o conjunto de números inteiros e não negativos (inclui o zero).
2. Conjunto de operações que podem ser realizados.
Os mesmos números naturais, admitem as 4 operações aritméticas
básicas: ´adição´, ´subtração´, ´multiplicação´ e ´divisão´, mas não
admitem por exemplo operações de conjunto, como União e Interseção.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 4
Os tipos por sua vez são divididos em duas características distintas:
1. Tipos básicos
2. Tipos estruturados
Em PORTUGOL, vamos considerar os tipos básicos como sendo um conjunto de 4
tipos principais, (embora nas linguagens de programação, como em C Sharp,
existam modificações para estes tipos principais).
Tipos básicos em Portugol :
• Tipo Inteiro:
Intervalo de valores:
Número inteiro (negativo, nulo ou positivo).
-100, 0, 1, 2, 1250.
Operações:
+ (adição), - (subtração), * (multiplicação), / (divisão)
Exemplo:
int X; ( declaração de X do tipo inteiro )
int Idade; ( declaração de Idade do tipo inteiro )
int A, B, C; ( declaração de A, B e C do tipo inteiro )
• Tipo Real:
Intervalo de valores:
Número real (negativo, nulo ou positivo).
-10, -1.5, 11.2, 0, 1.0, 2, 50.23465
Operações:
+ (adição), - (subtração), * (multiplicação), / (divisão)
Exemplo:
real X; ( declaração de X do tipo real )
real Peso; ( declaração de Peso do tipo real )
real A, B, C; ( declaração de A, B e C do tipo real )
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 5
• Tipo Caracter:
Intervalo de valores:
Caracteres Alfanuméricos
casa, UFSC, Win7, 123, alfa#2
Operações:
+ (união), - (interseção)
Exemplo:
caracter X; ( declaração de X do tipo caracter )
caracter Nome; ( declaração de Nome do tipo caracter )
caracter A, B, C; ( declaração de A, B e C do tipo caracter )
• Tipo Lógico
Intervalo de valores:
valores booleanos
verdadeiro, false
Operações:
operadores lógicos ( <, <=, >, >=, <>, == )
Exemplo:
bool X; ( declaração de X do tipo lógico)
bool Sucesso; ( declaração de Sucesso do tipo lógico)
bool A, B, C; ( declaração de A, B e C do tipo lógico)
Identificador de Variáveis
O identificador de uma variável, se refere ao nome de como a variável vai ser
conhecida no programa. É importante não esquecer que:
a) Não é possível definir variáveis de diferentes tipos com o mesmo
identificador, isto é com o mesmo nome. por exemplo:
real A; int A; não são aceitos, pois causaria erro na programação,
real A1; int A2; pode ser utilizado
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 6
b) O nome do identificadores somente podem conter: Letras (maiúsculas e
minúsculas), números e o caracter ‘_’. Por exemplo:
são válidas as declatações: int Idade, real A1, A2
não são aceitas as variáveis: caracter ?nome, real valor*
c) Letras maiúsculas e minúsculas são tratadas de forma diferente, deste modo
as variáveis abaixo são variáveis diferentes.
caracter Nome_Aluno, Nome_aluno;
real media, MEDIA;
É importante entender que cada variável definida no programa usa um local da
memória, que é acessada através do nome dado a variável. O espaço de memória
ocupado pelo conteúdo da variável, depende do tamanho destes tipos de dados,
que variam de acordo com o tipo do processador e com a implementação do
compilador.
Como referência inicial podemos considerar o seguinte:
• Tipo inteiro com 2 bytes;
• Tipo real com 4 bytes;
• Tipo caracter com 1 byte;
• Tipo lógico com 1 byte;
Exemplo: Pode-se supor a memória como uma matriz, onde cada célula possui o
tamanho de 1 byte (8 bits):
Para armazenar o valor inteiro A, são necessários 2 bytes.
Para armazenar o valor real B, são necessários 4 bytes.
BA
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 7
Estrutura do algoritmo
Conforme definimos anteriormente, algoritmos são sequências de comandos
especiais e com alguma estrutura de controle. Um destes comandos especiais e
bastante importante é o comando utilizado para atribuir conteúdo a variáveis.
Comando de atribuição
O comando de atribuição tem a seguinte operação:
1. A expressão é avaliada, isto é resolvida.
2. O resultado da execução da expressão é então atribuído a variável.
Exemplo: 1. inicio
2. int X;
3. X 10 + 17;
4. fim;
Vamos executar o algoritmo linha a linha;
Linha 1; O programa é iniciado. No compudador, início significa a preparação
de um ambiente para execução de programa.
Linha 2; Variável X é declarada. Um espaço na memória do computador,
compatível ao tipo, é reservado para armazenar a variável X. Desta forma, toda
vez que a variável X aparecer no programa, estará sendo referenciando o
conteúdo de memória reservado a X.
Linha 3; A expressão é avaliada e o resultado atribuído a X. A expressão 10 +
17 é resolvida, isto é obtem-se o resultado 27. Este resuldado é então atribuido a
X, ou seja o espaço de memória reservado para X, recebe o valor 27. Desta forma
o conteúdo (valor) de X é 27.
Linha 4; O programa é finalizado. Fim significa que o ambiente de execução
do programa é liberado.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 8
Operadores Aritméticos
Operadores aritméticos são utilizados para expressar equações matemáticas.
Neste estágio vamos nos deter ao entendimento de apenas alguns operadores
conhecidos como operadores básicos.
• Adição: operador + ex: Z X + Y;
• Subtração: operador - ex: Z X - Y;
• Multiplicação: operador * ex: Z X * Y;
• Divisão: operador / ex: Z X / Y;
• Resto da divisão: operador % ex: R X % Y;
• União: operador +
Ex: Nome_Completo Pre_Nome + Sobre_Nome;
Ordem de execução dos operadores em expressões:
1º. Resolvidos o que estiver interno a parenteses ´(´ ´)´
2º. Multiplição, Divisão e Resto ( primeiro o da esquerda, se houver empate )
3º. Adição e Subtração ( primeiro o da esquerda, se houver empate )
Exemplos: os resultados de: 10 / 2 + 5 10
10 / 2 * 5 25
10 / ( 2 * 5 ) 1
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 9
Estruturas de controle de PORTUGOL
Nos interessa neste momento conhecer apenas as estruturas de controle básicas,
variantes e demais potencialidades deixaremos para estudar mais adiante. Vimos
anteriormente que existem basicamente três estruturas de controle:
1. Sequência simples, representada pelo ponto e virgula ´;´
O ponto e virgula determina uma ordem sequêncial de execução das ações.
Isto é, a presença do ponto e virgula, determina que a ação seguinte ao
ponto e virgula somente pode ser executada após a ação que vem antes do
ponto e virgula ter sido executada.
Ex: inicio
. . . .
X 10;
Y X;
. . . .
fim
No exemplo acima quem determina que o comado Y X, somente
pode ser executada após do comando X 10 ter sido executado, não é a
lógica de execução da aplicação, mas sim a presença do ponto e virgula, que
estabelece a ordem sequêncial dos comandos.
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 10
2. Alternativa, para expressar condição:
Estruturas alternativas são utilizadas quando há uma condição que desvia o
fluxo do programa, dependendo de uma condição ser avaliada como
verdadeira ou falsa.
2.1 Alternativa simples
se < condição > então
< ação 1 >; < ação 2 >; . . .
Fimse
2.2 Alternativa composta
se < condição > então
< ação 1 >; < ação 2 >; . . .
senão
< ação 1 >; < ação 2 >; . . .
Fimse
exemplo: algoritmo para determinar se um dado número é PAR ou IMPAR
inicio
int N = 7; // definir ou conhecer o valor de N
int resto = N % 2; // calcular o resto da divisão de N por 2
se ( resto = 0 ) então
‘ N é um número PAR ‘;
senão
‘ N é um número IMPAR ‘;
fimse
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 11
2.3 Alternativa Multipla
Alternativa multipla, são utilizadas quando a condição a ser avaliada permite
varias alternativas como resposta.
Caso < variável >
alternativa 1 : Bloco de Ações 1;
alternativa 2 : Bloco de Ações 2;
alternativa 3 : Bloco de Ações 3;
alternativa 4 : Bloco de Ações 4;
caso contrário : Bloco de Ações 5;
FimCaso
Exemplo:
Caso DIA
SEG : Camisa Branca;
TER : Camisa Verde;
QUA : Camisa Azul;
QUI : Camisa Vermelha;
SEX : Camisa Amarela;
SAB : Camisa Rosa;
DOM: Camisa Preta;
FimCaso
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 12
3. Repetição, para expressar ação repetitivas:
Quando for necessário repetir um conjunto de ações do algoritmo por um
determinado número de vezes, utiliza-se uma estrutura de repetição, onde
um conjunto de ações são repetidas dependendo de uma condição ser
satisfeita.
repita
< ação 1 >;
< ação 2 >;
. . .
enquanto < condição >
exemplo: algoritmo para calcular o somatório dos número de 1 a N
inicio
int N = 7; // definir ou conhecer o valor de N
int somatorio = 0; // definir o valor inicial do somatório
repita
somatorio = somatorio + N;
N = N – 1;
enquanto ( N > 0 );
fim
Para estruturas repetitivas temos 2 grupos distintos:
1ª. Quando o número de repetições não é conhecida
repita enquanto <condição>
Bloco de ações bloco de ações
enquanto <condição> fimenquanto
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 13
inicio
int N = 7; // definir ou conhecer o valor de N
int somatorio = 0; // definir o valor inicial do somatório
enquanto ( N > 0 )
somatorio = somatorio + N;
N = N – 1;
fimenquanto;
fim
2ª. Quando o número de repetições é conhecido
PARA <variável> de <valor inicial> enquanto <condição> passo <incremento>
faça
Bloco de Ações;
fimpara
inicio
int N = 7; // definir ou conhecer o valor de N
int somatorio = 0; // definir o valor inicial do somatório
para k de N enquanto k > 0 passo -1
somatorio = somatorio + k;
fimpara;
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 14
Operadores relacionais e lógicos
Na condição das estruturas alternativas e repetitivas, utilizam-se operadores:
1. relacionais:
• menor: operador < ex: X < Y;
• maior: operador > ex: X > Y;
• igual: operador = ex: X = Y;
• menor ou igual: operador <= ex: X <= Y;
• maior ou igual: operador >= ex: X >= Y;
• diferente: operador <> ex: X <> Y;
2. lógicos:
• multiplicação lógica: operador e ex: P e Q;
• adição lógica: operador ou ex: P ou Q;
• negação: operador ~ ex: ~P;
tabela verdade:
P Q P e Q P ou Q ~P
V V V V F
V F F V F
F V F V V
F F F F V
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 15
Exercícios Resolvidos
Note que as soluções aqui apresentadas, são relativas aos exercícios resolvidos no
capítulo anterior e que os algoritmos apresentados, representam o passo 3 da solução,
de modo que a solução no passo 3 pode ser apresentada tanto na forma descritiva do
capítulo 2, ou em PORTUGOL como apresentado abaixo.
Passo 3 do exercício resolvido 1.01
inicio
int N 7; // número que se deja conhecer seu quadrado
int Quadrado N * N;
mostre Quadrado;
fim
Passo 3 do exercício resolvido 1.02
inicio
real Peso 80,0;
real Altura 1,82;
real IMC Peso / ( Altura * Altura );
mostre IMC;
fim
Passo 3 do exercício resolvido 1.03
inicio
real Valor_ME 100,00;
real IC 2,55;
real Valor_Reais Valor_ME * IC;
mostre Valor_Reais;
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 16
Passo 3 do exercício resolvido 2.01
Inicio
int N 7;
int Resto N % 2;
se ( Resto = 0 ) entao
mostre ‘ o número é PAR ’
senão
mostre ‘ o número é IMPAR ’;
fimse
fim
Passo 3 do exercício resolvido 2.02
Inicio
real P1 7,0;
real P2 8,5;
real Media ( P1 + P2 ) / 2;
se ( Media < 6,00 ) entao
mostre ‘ o aluno está REPROVADO ’
senão
mostre ‘o aluno está APROVADO’;
fimse
fim
Passo 3 do exercício resolvido 2.03
Inicio
int A leia valor do lado A; caracter TipoA leia tipo do lado A;
int B leia valor do lado B; caracter TipoB leia tipo do lado B;
int C;
caracter TipoC ”Cateto”;
se ( TipoA = “Hipotenusa”) entao C A*A – B*B; fimse;
se ( TipoB = “Hipotenusa”) entao C B*B – A*A; fimse;
se ( ( TipoA = “Cateto” ) e ( TipoB = “Cateto” ) ) entao
C A*A + B*B;
TipoC “Hipotenusa”;
fimse
mostre RaizQuadrada ( C );
mostre TipoC;
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 17
Passo 3 do exercício resolvido 3.01
inicio
int N leia valor N;
int k 1;
caracter sequencia “”;
repita
sequencia sequencia + caracter ( k );
k k + 1;
enquanto ( k <= N );
mostrar sequencia;
fim
Passo 3 do exercício resolvido 3.02
inicio
int N leia valor N;
int k 1;
int somatorio 0;
repita
somatorio somatorio + k
k k + 1;
enquanto ( k <= N );
mostrar somatorio;
fim
Passo 3 do exercício resolvido 3.03
inicio
int N leia valor N;
int fatorial 1;
repita
fatorial fatorial * N
N N - 1;
enquanto ( N > 0 );
mostrar fatorial;
fim
INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES
para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 18
Passo 3 do exercício resolvido 4.01
inicio
int N leia valor de N; // número a ser verificado se PRIMO
int k 2;
bool Primo True;
repita
int resto N % k;
se ( resto <> 0 ) entao
Primo false;
fimse;
k k + 1;
enquanto ( Primo e ( k < N ) );
mostrar Primo;
fim
// outra solução
inicio
int N leia valor de N; // número a ser verificado se PRIMO
int k 2;
bool Primo True;
repita
Primo ( N % k ) <> 0;
k k + 1;
enquanto ( Primo e ( k < ( N / 2 ) );
mostrar N, Primo;
fim

Más contenido relacionado

La actualidad más candente

Fundamentos de logica de programação
Fundamentos de logica de programaçãoFundamentos de logica de programação
Fundamentos de logica de programaçãoRogerio de Moraes
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cMaicon Rodrigues
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Kratos879
 
Lógica parte 2 - Algoritmos
Lógica   parte 2 - AlgoritmosLógica   parte 2 - Algoritmos
Lógica parte 2 - AlgoritmosWallison Parreira
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Robson Ferreira
 
Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem csergiocrespo
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOMicrosoft
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhanyKaren Costa
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação12anogolega
 
Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Yuri Camelo
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores34macchia34
 
Aula01
Aula01Aula01
Aula01vdlos
 

La actualidad más candente (20)

Fundamentos de logica de programação
Fundamentos de logica de programaçãoFundamentos de logica de programação
Fundamentos de logica de programação
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
Apostila C++ Básico - UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO”
 
Lógica parte 2 - Algoritmos
Lógica   parte 2 - AlgoritmosLógica   parte 2 - Algoritmos
Lógica parte 2 - Algoritmos
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3
 
Introduçãso a linguagem c
Introduçãso a linguagem cIntroduçãso a linguagem c
Introduçãso a linguagem c
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Algoritmos - capítulo 6
Algoritmos - capítulo 6Algoritmos - capítulo 6
Algoritmos - capítulo 6
 
Introdução a linguagem c karen lowhany
Introdução a linguagem c   karen lowhanyIntrodução a linguagem c   karen lowhany
Introdução a linguagem c karen lowhany
 
Introdução à programação
Introdução à programaçãoIntrodução à programação
Introdução à programação
 
Apresentação Linguagem C
Apresentação Linguagem CApresentação Linguagem C
Apresentação Linguagem C
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 
Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica Programando em C++ // Estrutura Básica
Programando em C++ // Estrutura Básica
 
Linguagem c-para-microcontroladores
Linguagem c-para-microcontroladoresLinguagem c-para-microcontroladores
Linguagem c-para-microcontroladores
 
Aula01
Aula01Aula01
Aula01
 

Destacado

Exercícios de avaliação 01 professor
Exercícios de avaliação 01 professorExercícios de avaliação 01 professor
Exercícios de avaliação 01 professorpronatecvja
 
Exercicios de Algoritimos
 Exercicios de Algoritimos Exercicios de Algoritimos
Exercicios de Algoritimossandra avenia
 
Conceitos e técnicas de programação apostilha algoritmo
Conceitos e técnicas de programação apostilha algoritmoConceitos e técnicas de programação apostilha algoritmo
Conceitos e técnicas de programação apostilha algoritmoRobson Ferreira
 
Apostila logica algoritmos e estrutuara de dados
Apostila  logica algoritmos e estrutuara de dadosApostila  logica algoritmos e estrutuara de dados
Apostila logica algoritmos e estrutuara de dadosGelber Freitas
 
Lógica de programação construção de algoritmos e estrutura de dados
Lógica de programação   construção de algoritmos e estrutura de dadosLógica de programação   construção de algoritmos e estrutura de dados
Lógica de programação construção de algoritmos e estrutura de dadospronatecvja
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgRegis Magalhães
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 

Destacado (10)

Exercícios de avaliação 01 professor
Exercícios de avaliação 01 professorExercícios de avaliação 01 professor
Exercícios de avaliação 01 professor
 
Exercicios de Algoritimos
 Exercicios de Algoritimos Exercicios de Algoritimos
Exercicios de Algoritimos
 
Conceitos e técnicas de programação apostilha algoritmo
Conceitos e técnicas de programação apostilha algoritmoConceitos e técnicas de programação apostilha algoritmo
Conceitos e técnicas de programação apostilha algoritmo
 
Apostila logica algoritmos e estrutuara de dados
Apostila  logica algoritmos e estrutuara de dadosApostila  logica algoritmos e estrutuara de dados
Apostila logica algoritmos e estrutuara de dados
 
Algoritmo material apoio
Algoritmo material apoioAlgoritmo material apoio
Algoritmo material apoio
 
Lógica de programação construção de algoritmos e estrutura de dados
Lógica de programação   construção de algoritmos e estrutura de dadosLógica de programação   construção de algoritmos e estrutura de dados
Lógica de programação construção de algoritmos e estrutura de dados
 
Apostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o VisualgApostila de Introdução aos Algoritmos - usando o Visualg
Apostila de Introdução aos Algoritmos - usando o Visualg
 
Aula 9 - Estruturas Condicionais
Aula 9 - Estruturas CondicionaisAula 9 - Estruturas Condicionais
Aula 9 - Estruturas Condicionais
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 

Similar a Algoritmos computacionais

Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem cvingue
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturadoNaldo Falaschi
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosjormad
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmosPedro Nelson
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosRodrigo Kiyoshi Saito
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxaronoliveira3
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfssuser059c2c1
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aulaLoAlves21
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmospronatecvja
 

Similar a Algoritmos computacionais (20)

Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Apostila c++ básico
Apostila c++ básicoApostila c++ básico
Apostila c++ básico
 
Apostila c++ básico (1)
Apostila c++ básico (1)Apostila c++ básico (1)
Apostila c++ básico (1)
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturado
 
A programação básica
A programação básicaA programação básica
A programação básica
 
A programacao basica
A programacao basicaA programacao basica
A programacao basica
 
joane
joane joane
joane
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Apostila algoritmos
Apostila algoritmosApostila algoritmos
Apostila algoritmos
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptxAula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
Aula02_Vars_Ident_Ent_Saida_Algoritmos.pptx
 
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdfTREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
TREINAMENTO EM LOGICA DE PROGRAMAÇÃO (Sandra Rita) (z-lib.org).pdf
 
C curso - notas de aula
C   curso - notas de aulaC   curso - notas de aula
C curso - notas de aula
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmos
 

Algoritmos computacionais

  • 1. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 1 Algoritmos Computacionais ( Programas ) A partir deste tópico, consideramos a utilização do universo Computacional na solução de problemas. Para tanto devemos lembrar que a transposição de problemas do universo Real para o universo Computacional, é realizada através da modelagem de problemas cuja solução já é conhecida e já foi expressa na forma de algoritmo na linguagem natural, discutido no tópico anterior. Na construção de algoritmos no tópico anterior, foram introduzidos conceitos fundamentais, e suficiente, para a construção de algoritmos em uma linguagem mais próxima da linguagem natural. Algoritmos computacionais, ou programas de computadores, por outro lado, requerem um nível de detalhamento mais próximo da linguagem computacional, de modo que as ações representem comandos que possam ser entendidos e realizados pelo computador. Surge então uma questão: Como saber se já temos detalhes suficientes em um programa para que a AÇÃO possa ser entendida e realizada ? A resposta a essa pergunta vai depender do agente que irá executar o programa. No caso de algoritmos computacionais, sabemos que o computador possui um conjunto limitado de instruções e que o programa deve ser expresso com estas instruções. Entretanto para facilitar a construção de algoritmos computacionais, as linguagens de programação evoluiram de forma a aproximarem-se cada vez mais da linguagem natural. Pseudolinguagens tentam aproximar ainda mais os algoritmos computacionais da linguagem natural, sendo especialmente adequadas para utilizacao em cursos introdutórios sobre a arte de programar computadores. Neste trabalho utilizaremos uma pseudolinguagem, conhecida como PORTUGOL, para aproximar a liguagem natural ao detalhamento das ações nos algoritmos computacionais. A descrição de algoritmos em pseudo linguagens, além da simplicidade, permitem mesclar regras e estruturas rígidas, com descrições de ações em liguagem natural, tornando possível postergar destalhes minuciosos para o momento de modelar o algoritmo na linguagem executável do computador.
  • 2. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 2 A principal vantagem do uso de pseudolinguagens é a flexibilidade, todavia a utilização de ações especiais com regras definidas pode ajudar na modelagem e na posterior transcrição do problema para o universo computacional. Neste aspecto Portugol, tem a flexibilidade de poder ser adaptada facilmente as estruturas da linguagem real. PORTUGOL PORTUGOL é uma pseudolinguagem que permite ao programador pensar no problema em si e não no equipamento que irá executar o algoritmo. Em geral, a medida que o programador vai ganhando experiência, existe a tendência de utilização do PORTUGOL ainda no universo Real tornando mais fácil a transposição do problema para o universo Computacional. Todavia, devemos observar que mesmo com a utilização de pseudolinguagem na modelagem de soluções, é importante considerar-mos a sintaxe (em relação à forma) e a semântica (em relação ao conteúdo ou seu significado). Lembre que na construção de algoritmo mostrada no tópico anterior, identificamos dois conceitos básicos e fundamentais dos algoritmos. Memória ( Estruturas de Dados ) para manipulação das informações. Algoritmo ( Estruturas de Controle ) para manipulação das ações. Esses conceitos estão representados nas linguagens de programação, reais ou virtuais, através de variáveis (para representar a memória) e ações (para expressar a solução na forma algoritmica). A estrutura de um algoritmo em PORTUGOL pode ser dada como: início < declarações de variáveis > ( estrutura de dados ) < ações > ( algoritmo ) fim
  • 3. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 3 Variáveis Variáveis são componentes das linguagens de programação, que identificam as informações que estão sendo manipuladas pelos programas. Uma variável é um local (área na memória do computador) que armazena um tipo específico de conteúdo. Uma variável contém um valor que pode ser modificado durante a execução do programa. A variável possui um identificador (nome), que pode ser representado da seguinte forma: O diagrama acima, mostra a forma como uma variável é declarada em função de um tipo associado. Tipos O Tipo define duas características importantes: 1. Intervalo de valores possíveis. Por exemplo: se pensarmos em números naturais, estamos identificando o conjunto de números inteiros e não negativos (inclui o zero). 2. Conjunto de operações que podem ser realizados. Os mesmos números naturais, admitem as 4 operações aritméticas básicas: ´adição´, ´subtração´, ´multiplicação´ e ´divisão´, mas não admitem por exemplo operações de conjunto, como União e Interseção.
  • 4. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 4 Os tipos por sua vez são divididos em duas características distintas: 1. Tipos básicos 2. Tipos estruturados Em PORTUGOL, vamos considerar os tipos básicos como sendo um conjunto de 4 tipos principais, (embora nas linguagens de programação, como em C Sharp, existam modificações para estes tipos principais). Tipos básicos em Portugol : • Tipo Inteiro: Intervalo de valores: Número inteiro (negativo, nulo ou positivo). -100, 0, 1, 2, 1250. Operações: + (adição), - (subtração), * (multiplicação), / (divisão) Exemplo: int X; ( declaração de X do tipo inteiro ) int Idade; ( declaração de Idade do tipo inteiro ) int A, B, C; ( declaração de A, B e C do tipo inteiro ) • Tipo Real: Intervalo de valores: Número real (negativo, nulo ou positivo). -10, -1.5, 11.2, 0, 1.0, 2, 50.23465 Operações: + (adição), - (subtração), * (multiplicação), / (divisão) Exemplo: real X; ( declaração de X do tipo real ) real Peso; ( declaração de Peso do tipo real ) real A, B, C; ( declaração de A, B e C do tipo real )
  • 5. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 5 • Tipo Caracter: Intervalo de valores: Caracteres Alfanuméricos casa, UFSC, Win7, 123, alfa#2 Operações: + (união), - (interseção) Exemplo: caracter X; ( declaração de X do tipo caracter ) caracter Nome; ( declaração de Nome do tipo caracter ) caracter A, B, C; ( declaração de A, B e C do tipo caracter ) • Tipo Lógico Intervalo de valores: valores booleanos verdadeiro, false Operações: operadores lógicos ( <, <=, >, >=, <>, == ) Exemplo: bool X; ( declaração de X do tipo lógico) bool Sucesso; ( declaração de Sucesso do tipo lógico) bool A, B, C; ( declaração de A, B e C do tipo lógico) Identificador de Variáveis O identificador de uma variável, se refere ao nome de como a variável vai ser conhecida no programa. É importante não esquecer que: a) Não é possível definir variáveis de diferentes tipos com o mesmo identificador, isto é com o mesmo nome. por exemplo: real A; int A; não são aceitos, pois causaria erro na programação, real A1; int A2; pode ser utilizado
  • 6. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 6 b) O nome do identificadores somente podem conter: Letras (maiúsculas e minúsculas), números e o caracter ‘_’. Por exemplo: são válidas as declatações: int Idade, real A1, A2 não são aceitas as variáveis: caracter ?nome, real valor* c) Letras maiúsculas e minúsculas são tratadas de forma diferente, deste modo as variáveis abaixo são variáveis diferentes. caracter Nome_Aluno, Nome_aluno; real media, MEDIA; É importante entender que cada variável definida no programa usa um local da memória, que é acessada através do nome dado a variável. O espaço de memória ocupado pelo conteúdo da variável, depende do tamanho destes tipos de dados, que variam de acordo com o tipo do processador e com a implementação do compilador. Como referência inicial podemos considerar o seguinte: • Tipo inteiro com 2 bytes; • Tipo real com 4 bytes; • Tipo caracter com 1 byte; • Tipo lógico com 1 byte; Exemplo: Pode-se supor a memória como uma matriz, onde cada célula possui o tamanho de 1 byte (8 bits): Para armazenar o valor inteiro A, são necessários 2 bytes. Para armazenar o valor real B, são necessários 4 bytes. BA
  • 7. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 7 Estrutura do algoritmo Conforme definimos anteriormente, algoritmos são sequências de comandos especiais e com alguma estrutura de controle. Um destes comandos especiais e bastante importante é o comando utilizado para atribuir conteúdo a variáveis. Comando de atribuição O comando de atribuição tem a seguinte operação: 1. A expressão é avaliada, isto é resolvida. 2. O resultado da execução da expressão é então atribuído a variável. Exemplo: 1. inicio 2. int X; 3. X 10 + 17; 4. fim; Vamos executar o algoritmo linha a linha; Linha 1; O programa é iniciado. No compudador, início significa a preparação de um ambiente para execução de programa. Linha 2; Variável X é declarada. Um espaço na memória do computador, compatível ao tipo, é reservado para armazenar a variável X. Desta forma, toda vez que a variável X aparecer no programa, estará sendo referenciando o conteúdo de memória reservado a X. Linha 3; A expressão é avaliada e o resultado atribuído a X. A expressão 10 + 17 é resolvida, isto é obtem-se o resultado 27. Este resuldado é então atribuido a X, ou seja o espaço de memória reservado para X, recebe o valor 27. Desta forma o conteúdo (valor) de X é 27. Linha 4; O programa é finalizado. Fim significa que o ambiente de execução do programa é liberado.
  • 8. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 8 Operadores Aritméticos Operadores aritméticos são utilizados para expressar equações matemáticas. Neste estágio vamos nos deter ao entendimento de apenas alguns operadores conhecidos como operadores básicos. • Adição: operador + ex: Z X + Y; • Subtração: operador - ex: Z X - Y; • Multiplicação: operador * ex: Z X * Y; • Divisão: operador / ex: Z X / Y; • Resto da divisão: operador % ex: R X % Y; • União: operador + Ex: Nome_Completo Pre_Nome + Sobre_Nome; Ordem de execução dos operadores em expressões: 1º. Resolvidos o que estiver interno a parenteses ´(´ ´)´ 2º. Multiplição, Divisão e Resto ( primeiro o da esquerda, se houver empate ) 3º. Adição e Subtração ( primeiro o da esquerda, se houver empate ) Exemplos: os resultados de: 10 / 2 + 5 10 10 / 2 * 5 25 10 / ( 2 * 5 ) 1
  • 9. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 9 Estruturas de controle de PORTUGOL Nos interessa neste momento conhecer apenas as estruturas de controle básicas, variantes e demais potencialidades deixaremos para estudar mais adiante. Vimos anteriormente que existem basicamente três estruturas de controle: 1. Sequência simples, representada pelo ponto e virgula ´;´ O ponto e virgula determina uma ordem sequêncial de execução das ações. Isto é, a presença do ponto e virgula, determina que a ação seguinte ao ponto e virgula somente pode ser executada após a ação que vem antes do ponto e virgula ter sido executada. Ex: inicio . . . . X 10; Y X; . . . . fim No exemplo acima quem determina que o comado Y X, somente pode ser executada após do comando X 10 ter sido executado, não é a lógica de execução da aplicação, mas sim a presença do ponto e virgula, que estabelece a ordem sequêncial dos comandos.
  • 10. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 10 2. Alternativa, para expressar condição: Estruturas alternativas são utilizadas quando há uma condição que desvia o fluxo do programa, dependendo de uma condição ser avaliada como verdadeira ou falsa. 2.1 Alternativa simples se < condição > então < ação 1 >; < ação 2 >; . . . Fimse 2.2 Alternativa composta se < condição > então < ação 1 >; < ação 2 >; . . . senão < ação 1 >; < ação 2 >; . . . Fimse exemplo: algoritmo para determinar se um dado número é PAR ou IMPAR inicio int N = 7; // definir ou conhecer o valor de N int resto = N % 2; // calcular o resto da divisão de N por 2 se ( resto = 0 ) então ‘ N é um número PAR ‘; senão ‘ N é um número IMPAR ‘; fimse fim
  • 11. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 11 2.3 Alternativa Multipla Alternativa multipla, são utilizadas quando a condição a ser avaliada permite varias alternativas como resposta. Caso < variável > alternativa 1 : Bloco de Ações 1; alternativa 2 : Bloco de Ações 2; alternativa 3 : Bloco de Ações 3; alternativa 4 : Bloco de Ações 4; caso contrário : Bloco de Ações 5; FimCaso Exemplo: Caso DIA SEG : Camisa Branca; TER : Camisa Verde; QUA : Camisa Azul; QUI : Camisa Vermelha; SEX : Camisa Amarela; SAB : Camisa Rosa; DOM: Camisa Preta; FimCaso
  • 12. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 12 3. Repetição, para expressar ação repetitivas: Quando for necessário repetir um conjunto de ações do algoritmo por um determinado número de vezes, utiliza-se uma estrutura de repetição, onde um conjunto de ações são repetidas dependendo de uma condição ser satisfeita. repita < ação 1 >; < ação 2 >; . . . enquanto < condição > exemplo: algoritmo para calcular o somatório dos número de 1 a N inicio int N = 7; // definir ou conhecer o valor de N int somatorio = 0; // definir o valor inicial do somatório repita somatorio = somatorio + N; N = N – 1; enquanto ( N > 0 ); fim Para estruturas repetitivas temos 2 grupos distintos: 1ª. Quando o número de repetições não é conhecida repita enquanto <condição> Bloco de ações bloco de ações enquanto <condição> fimenquanto
  • 13. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 13 inicio int N = 7; // definir ou conhecer o valor de N int somatorio = 0; // definir o valor inicial do somatório enquanto ( N > 0 ) somatorio = somatorio + N; N = N – 1; fimenquanto; fim 2ª. Quando o número de repetições é conhecido PARA <variável> de <valor inicial> enquanto <condição> passo <incremento> faça Bloco de Ações; fimpara inicio int N = 7; // definir ou conhecer o valor de N int somatorio = 0; // definir o valor inicial do somatório para k de N enquanto k > 0 passo -1 somatorio = somatorio + k; fimpara; fim
  • 14. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 14 Operadores relacionais e lógicos Na condição das estruturas alternativas e repetitivas, utilizam-se operadores: 1. relacionais: • menor: operador < ex: X < Y; • maior: operador > ex: X > Y; • igual: operador = ex: X = Y; • menor ou igual: operador <= ex: X <= Y; • maior ou igual: operador >= ex: X >= Y; • diferente: operador <> ex: X <> Y; 2. lógicos: • multiplicação lógica: operador e ex: P e Q; • adição lógica: operador ou ex: P ou Q; • negação: operador ~ ex: ~P; tabela verdade: P Q P e Q P ou Q ~P V V V V F V F F V F F V F V V F F F F V
  • 15. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 15 Exercícios Resolvidos Note que as soluções aqui apresentadas, são relativas aos exercícios resolvidos no capítulo anterior e que os algoritmos apresentados, representam o passo 3 da solução, de modo que a solução no passo 3 pode ser apresentada tanto na forma descritiva do capítulo 2, ou em PORTUGOL como apresentado abaixo. Passo 3 do exercício resolvido 1.01 inicio int N 7; // número que se deja conhecer seu quadrado int Quadrado N * N; mostre Quadrado; fim Passo 3 do exercício resolvido 1.02 inicio real Peso 80,0; real Altura 1,82; real IMC Peso / ( Altura * Altura ); mostre IMC; fim Passo 3 do exercício resolvido 1.03 inicio real Valor_ME 100,00; real IC 2,55; real Valor_Reais Valor_ME * IC; mostre Valor_Reais; fim
  • 16. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 16 Passo 3 do exercício resolvido 2.01 Inicio int N 7; int Resto N % 2; se ( Resto = 0 ) entao mostre ‘ o número é PAR ’ senão mostre ‘ o número é IMPAR ’; fimse fim Passo 3 do exercício resolvido 2.02 Inicio real P1 7,0; real P2 8,5; real Media ( P1 + P2 ) / 2; se ( Media < 6,00 ) entao mostre ‘ o aluno está REPROVADO ’ senão mostre ‘o aluno está APROVADO’; fimse fim Passo 3 do exercício resolvido 2.03 Inicio int A leia valor do lado A; caracter TipoA leia tipo do lado A; int B leia valor do lado B; caracter TipoB leia tipo do lado B; int C; caracter TipoC ”Cateto”; se ( TipoA = “Hipotenusa”) entao C A*A – B*B; fimse; se ( TipoB = “Hipotenusa”) entao C B*B – A*A; fimse; se ( ( TipoA = “Cateto” ) e ( TipoB = “Cateto” ) ) entao C A*A + B*B; TipoC “Hipotenusa”; fimse mostre RaizQuadrada ( C ); mostre TipoC; fim
  • 17. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 17 Passo 3 do exercício resolvido 3.01 inicio int N leia valor N; int k 1; caracter sequencia “”; repita sequencia sequencia + caracter ( k ); k k + 1; enquanto ( k <= N ); mostrar sequencia; fim Passo 3 do exercício resolvido 3.02 inicio int N leia valor N; int k 1; int somatorio 0; repita somatorio somatorio + k k k + 1; enquanto ( k <= N ); mostrar somatorio; fim Passo 3 do exercício resolvido 3.03 inicio int N leia valor N; int fatorial 1; repita fatorial fatorial * N N N - 1; enquanto ( N > 0 ); mostrar fatorial; fim
  • 18. INTRODUÇÃO a PROGRAMAÇÃO de COMPUTADORES para CURSOS de ENGENHARIA e de AUTOMAÇÃO Página 18 Passo 3 do exercício resolvido 4.01 inicio int N leia valor de N; // número a ser verificado se PRIMO int k 2; bool Primo True; repita int resto N % k; se ( resto <> 0 ) entao Primo false; fimse; k k + 1; enquanto ( Primo e ( k < N ) ); mostrar Primo; fim // outra solução inicio int N leia valor de N; // número a ser verificado se PRIMO int k 2; bool Primo True; repita Primo ( N % k ) <> 0; k k + 1; enquanto ( Primo e ( k < ( N / 2 ) ); mostrar N, Primo; fim