Você está na página 1de 66

Linguagem Algorítmica

Gilson Amorim
O que é?
• Pseudolinguagem
• Um português estruturado
• Com regras para formação do algoritmo
• Permite que o algoritmo escrito na pseudolinguagem seja
traduzido “quase” totalmente para uma linguagem de
programação
• Não tem uma padronização
• Usaremos VisuAlg
Forma geral do VisuAlg
• Algoritmo “<nome_do_algoritmo>”
• [const <declaração_de_constantes>]
• [var <declaração_de_variáveis>]
• [<definição de sub-algoritmos>]
• inicio
• <corpo_do_algoritmo ou seja, as instruções, comandos e
cálculos>
• fimalgoritmo
O que significa
• < > são obrigatórios
• [ ] são opcionais
• Algoritmo - palavra que indica o início da definição de um
algoritmo.
• <nome_do_algoritmo> é um nome simbólico dado ao
algoritmo, entre aspas.
• <declaração_de_constantes> - área da declaração de
constantes.
O que significa

• var <declaração_de_variáveis> – declaração de variáveis.

• <definição de subalgoritmos> são definidos os subalgoritmos, ou


seja, algoritmos que podem ser criados dentro de outros.

• inicio e fimalgoritmo - delimitam o início e o fim do conjunto de


instruções do corpo do algoritmo.

• As palavras em negrito são palavras reservadas


Palavras reservadas
• São palavras que fazem parte da estrutura de uma
linguagem.
• Têm significado pré-definido.
• Não podem ser utilizadas para outra finalidade
diferente da especificada na linguagem.
Exemplo de um algoritmo em VisuAlg
O mesmo Algoritmo Anterior em C
(https://www.onlinegdb.com/)
• // Disciplina : Algoritmos e Programação
• // Professor : Gilson Amorim
• // Nome: "Media"
• // Descrição : Faça um algoritmo em C que, dadas duas notas, calcule
• // a média aritmética simples e, caso a média seja maior ou igual a 6
imprima,
• // "Aprovado", caso contrário, imprima "Reprovado"
• // Data atual : 02/09/2019
• // Seção de Declarações das variáveis
O mesmo Algoritmo Anterior em C
• #include <stdio.h>
• #include <stdlib.h>
• int main()
•{
• // Seção de Comandos, procedimento, funções, operadores, etc...
• float n1, n2, media;
• int espera;
O mesmo Algoritmo Anterior em C
• printf("Entre com a primeira nota: ");
• scanf("%f",&n1);
• printf("Entre com a segunda nota: ");
• scanf("%f",&n2);
• media=(n1+n2)/2;
• if (media>=6)
• {
• printf("Aprovado");
• }else{
• printf("Reprovado");
• }
• }
Identificadores
• São nomes únicos definidos pelos programadores para identificar/distinguir os
elementos de um algoritmo, tais como: o nome do algoritmo, as constantes e as
variáveis.
• Regras:
• Começar por letra
• Não pode conter: espaço em branco e caracteres especiais (@, #, &, *, -, +, ?, $,
etc.), exceto o _ (subscrito).
• Não há distinção entre maiúscula/minúscula.
• Não deve conter acentuação nem cedilha (ç).
• Não pode usar palavra reservada.
• O nome deve ser significativo.
• Não pode haver nomes repetidos.
Identificadores – nomes inválidos
• vm (o nome não é significativo)
• 13salario (identificador tem de começar por uma letra)
• salárioR$, %desconto, km/h, (o nome do identificador não poder ter
símbolos especiais)
• horário, preço (não se deve usar acentuação ou cedilha)
• valor total (o identificador não pode ter espaço em branco)
• logico, passo, algoritmo (o nome do identificador não pode ser uma
palavra reservada)
Constantes
• São regiões da memória que não devem sofrer alteração durante a
execução do algoritmo.
• Palavra chave: const
• Exemplo: const float e = 2.71828;
Algoritmo “teste” float area;
const
e = 2.71828 int main()
var
area : real
{
Inicio }
fimalgoritmo
Exemplo em C de uso de constante
• #include <stdio.h>
• const float e = 2.71828;
• float pi=3.1415;
• float area_circulo,raio,perimetro;
• int main()
• {
• printf("Entre com o raio: ");
• scanf("%f",&raio);
• area_circulo=pi*raio*raio;
• perimetro=2*pi*raio;
• printf("área: %f",area_circulo);
• printf("perímetros da circunferência: %f",perimetro);

• }
Variáveis
• São regiões de memória em que seu valor pode sofrer alteração
durante a execução do programa e acessadas via um identificador.
• Tipos de dados
Tipos de
Palavra chave Tipo Tamanho Intervalo
char Caracter 1 -128 a 127
signed char Caractere com sinal 1 -128 a 127

Varáveis
unsigned char Caractere sem sinal 1 0 a 255
Int Inteiro 2 -32.768 a 32.767
signed int Inteiro com sinal 2 -32.768 a 32.767

Numéricas
unsigned int Inteiro sem sinal 2 0 a 65.535
short int Inteiro curto 2 -32.768 a 32 767
signed short int Inteiro curto com 2 -32.768 a 32.767
sinal

em C unsigned short
int
long int
Inteiro curto sem
sinal
Inteiro long
2

4
0 a 65.535

-2.147.483.648 a
2.147.483.647
signed long int Inteiro longo com 4 -2.147.483.648 a
sinal 2.147.483.647
unsigned long Inteiro longo sem 4 0 a 4.294.967.295
int sinal
float Ponto flutuante com 4 3.4 E-38 a 3.4E+38
precisão simples
double Ponto flutuante com 8 1.7 E-308 a 1.7E+308
precisão simples
long double Ponto flutuante com 16 3.4E-4932 a 1.1E+4932
precisão dupla longo
Variáveis - exemplos
• Inteiro: 20, 434, -876
• Real: 2.56, -87.98, 1234.3 e 0.05
• Literal ou caractere: “Seu nome?”, “”, ”1234” , “1+2”
• Logico: F ou V
• int: 20, 434, -876
• float: 2.56, -87.98, 1234.3 e 0.05
• char: “Seu nome?”, “”, ”1234” , “1+2”
• Logico: não existe em C, usa numérica
Operadores e Expressões

• Operadores são os meios usados para incrementar, decrementar,


comparar e avaliar dados dentro do computador.
• Tipos: atribuição (<-), aritméticos, relacionais e lógicos.

• Expressões – utilizam os operadores e operandos para construir


fórmula.
Operadores de atribuição
• Nome <- “Sandra” (aqui temos que a variável Nome recebe o valor
Sandra)
• Idade <- 18 (a variável Idade recebe o valor 18)
• Casado <- F (a variável Casado recebe o valor F (falso))
• Salario <- 500.55 (a variável Salario recebe o valor 500.55)
• Soma <- 45 + 10 (a variável recebe o valor da soma de 45 com 10, ou
seja, 55)
• Nome2 <- Nome (está copiando para Nome2 o que estava
armazenado em Nome, ou seja, o valor “Sandra”).
Operadores de atribuição em C
• Nome = “Sandra” (aqui temos que a variável Nome recebe o valor
Sandra)
• Idade = 18 (a variável Idade recebe o valor 18)
• Casado = 0 (a variável Casado recebe o valor F (falso))
• Salario = 500.55 (a variável Salario recebe o valor 500.55)
• Soma = 45 + 10 (a variável recebe o valor da soma de 45 com 10, ou
seja, 55)
• Nome2 = Nome (está copiando para Nome2 o que estava
armazenado em Nome, ou seja, o valor “Sandra”).
Operadores Relacionais
Operador Comparação Exemplo Resultado
> Maior que 4>4 F
< Menor que 4<4 F
>= Maior ou igual 4>=4 V
<= Menor ou igual 4<=4 V
= Igual 4=4 V
<> Diferente 4<>4 F
Operadores Relacionais em C
Operador Comparação Exemplo Resultado
> Maior que 4>4 F
< Menor que 4<4 F
>= Maior ou igual 4>=4 V
<= Menor ou igual 4<=4 V
== Igual 4==4 V
!= Diferente 4!=4 F
Operadores Lógicos e Operações Lógicas
Operadores Lógicos e
Operações Lógicas em C
Operador Tipo Operador Prioridade
! Unário Negação 1
&& Binário Conjunção 2
|| Binário Disjunção 3
Conjunção (E)
Conjunção (E) - && - em C
Valor1 Operador Valor2 Resultado

Falso && Falso Falso

Falso && Verdadeiro Falso

Verdadeiro && Falso Falso

Verdadeiro && Verdadeiro Verdadeiro


Disjunção (OU)
Disjunção (OU) - || - em C
Valor1 Operador Valor2 Resultado

Falso || Falso Falso

Falso || Verdadeiro Verdadeiro

Verdadeiro || Falso Verdadeiro

Verdadeiro || Verdadeiro Verdadeiro


Uso de Operadores Lógicos em C
• #include <stdio.h>
• int main()
• {
• int i, j;
• printf("informe dois números(cada um sendo 0 ou 1): ");
• scanf("%d%d", &i, &j);
• printf("%d E %d é %d\n", i, j, i && j);
• printf("%d OU %d é %d\n", i, j, i || j);
• printf("NÃO %d é %d\n", i, !i);
• }
Operações finais sobre operadores

• Os operadores com a mesma prioridade deve ser executados da


esquerda para a direita.
• Exemplos: Qual seria o resultado de Não (3+4 > 10) E (10<>8-2)?
• Verdadeiro.
• Em C: !(3+4>10) && (10<>8-2)
Exemplo da Expressão anterior em C
• #include <stdio.h>
• int main()
•{
• if (!(3+4>10) && (10!=8-2))
• {printf("Verdadeiro");}
• else
• {printf("Falso");
• }
•}
Instruções de Entrada e Saída
• Entrada – Permite que instruções fornecidas pelo
usuário sejam armazenadas na memória por
intermédio das variáveis.
• Sintaxe:
• Leia(nomeVariavel) ou
• Leia(nomeVar1,...,nomeVarN)
• scanf("%d", &nomeVariavel); ou
• scanf(“%d ...%dNvezes ”,&nomeVar1,...,&nomeVarN)
Instruções de Entrada e Saída
• Saída – Permite que uma variável ou mensagem seja
exibida em tela ou impressora.
• Sintaxe:
• Escreva(nomeVariavel) ou
• Escreva(nomeVar1,...,nomeVarN)
• Escreva(“textoA”)
• Escreva(“textoA”,nomeVar1,”textoB”,nomeVar2,...)
Instruções de Entrada e Saída
•Saída – Permite que uma variável ou mensagem
seja exibida em tela ou impressora.
•Sintaxe:
• printf(“%d”,nomeVariavel); ou
• printf(nomeVar1,...,nomeVarN)
• printf(“textoA”)
• printf(“textoA %d”,nomeVar1,”texto %d”,nomeVar2,...)
Exemplos
Algoritmo "LeiaEscreva1"
Var precoUnit, precoTot: real
Qtd: inteiro
Inicio
Leia(precoUnit, qtd)
precoTot <- precoUnit*qtd
Escreva(precoTot)
fimalgoritmo
Exemplos anterior em C
• #include <stdio.h>
• int main()
•{
• float precoUnit, precoTot;
• int Qtd;
• scanf("%f%d", &precoUnit, &Qtd);
• precoTot = precoUnit*Qtd;
• printf("%5.2f",precoTot);
•}
Exemplos
Algoritmo "LeiaEscreva2"
var precoUnit, precoTot: real
qtd: inteiro
inicio
Escreva("Informe o preço unitário ")
Leia(precoUnit)
Escreva("Informe a quantidade ")
Leia(qtd)
precoTot <- precoUnit * qtd
Escreva("O valor a ser pago será: ", precoTot)
fimalgoritmo
Exemplos anterior em C
• #include <stdio.h>
• int main()
• {
• float precoUnit, precoTot;
• int Qtd;
• printf("Informe o preço unitário ");
• scanf("%f",&precoUnit);
• printf("Informe a quantidade ");
• scanf("%d",&Qtd);
• precoTot = precoUnit * Qtd;
• printf("O valor a ser pago será: %f", precoTot);
• }
Estruturas de Controle
• Sequencial: Conjunto de comandos executados em sequência linear
de cima para baixo.
• Seleção, Condicional ou de Decisão: A depender do teste de certas
condições será executado ou não um dado conjunto de instruções.
• Repetição: Instrução ou conjunto de instruções que será executado
repetidamente, de acordo com uma condição ou contagem.
Estrutura Sequencial
Exemplo
Algoritmo "Sequencial"
var num1, num2, soma: inteiro
inicio
Escreva("Informe o primeiro número: ")
Leia(num1)
Escreva("Informe o segundo número: ")
Leia(num2)
soma <- num1 + num2
Escreva("A soma dos valores é: ", soma)
fimalgoritmo
Exemplo anterior em C
• #include <stdio.h>
• int main()
• {
• int num1, num2, soma;
• printf("Informe o primeiro número: ");
• scanf("%d",&num1);
• printf("Informe o segundo número: ");
• scanf("%d",&num2);
• soma = num1 + num2;
• printf("A soma dos valores é: %d ", soma);
• }
Estrutura Condicional Simples
Instrução “Se ...entao...fimse”
Estrutura Condicional Composta
Instrução “Se...entao...senao...fimse”
Estrutura condicional composta aninhadas
Exemplo
Algoritmo "Condicional_Idade"
var idade: inteiro
inicio
Escreva("Informe sua idade: ")
leia(idade)
se (idade < 18) entao
Escreva("Você é de menor")
senao
se (idade<30) entao
Escreva("Você é jovem")
senao
Exemplo - continuação
se (idade<60) entao
Escreva ("Você é adulto")
senao
Escreva("Você é idoso")
fimse
fimse
fimse
fimalgoritmo
Exemplo anterior em C
include <stdio.h>
{if (idade<30)
int main() {printf("Você é jovem");
{ }else
//Condicional_Idade if (idade<60)
int idade; {printf("Você é adulto");
printf("Informe sua idade: "); }else
scanf("%d",&idade); {printf("Você é idoso");
if (idade < 18) }
{printf("Você é de menor"); }
}else }
Estrutura condicional múltipla
escolha <seletor>
caso <exp1> <seqüência-de-comandos-1>
caso <exp2> <seqüência-de-comandos-2>
...
outrocaso
<seqüência-de-comandos-extra>
fimescolha
Exemplo
Exemplo Condicional Multipla
• Algoritmo "Cond_multipla"
• var opcao: inteiro
• mes: caracter
• inicio
• Escreva("Escolha a opção: ")
• leia(opcao)
• Escolha (opcao)
• caso 1
• mes <-"Janeiro"
• caso 2
• mes <-"Fevereiro"
• caso 3
• mes <-"Março"
Exemplo Condicional Multipla – continuação
• caso 4
• mes <-"Abril"
• caso 5
• mes <-"Maio"
• caso 6
• mes <-"Junho"
• caso 7
• mes <-"Julho"
• caso 8
• mes <-"Agosto"
Exemplo Condicional Multipla – continuação
• caso 9
• mes <-"Setembro"
• caso 10
• mes <-"Outubro"
• caso 11
• mes <-"Novembro"
• caso 12
• mes <-"Dezembro"
Exemplo Condicional Multipla – continuação
• outrocaso
• Escreva("Opção inválida!")
• fimescolha
• se (opcao>=1) e (opcao<=12) entao
• Escreva("O Mês escolhido foi: ",mes)
• fimse
• fimalgoritmo
Estrutura de Repetição ENQUANTO/FACA
Exemplo Repetição – ENQUANTO/FACA
algoritmo "EnquantoFaca"
var x: inteiro
inicio
escreva("Digite um valor: ")
leia (x)
enquanto (x<>0) faca
se (x > 0) entao
escreval ("O número é positivo")
Exemplo Repetição – ENQUANTO/FACA
senao #include <stdio.h>
int x;
escreval ("O número é negativo") int main()
{
fimse printf("\nDigite um número: ");
scanf("%d",&x);
escreva("Digite um valor: ") while (x!=0)
leia (x) {
if (x>0)
fimenquanto printf("\nO número é positivo");
else
fimalgoritmo printf("\nO número é negativo");
printf("\nDigite um número: ");
scanf("%d",&x);
}
}
Estrutura de Repetição REPITA/ATE
Estrutura de Repetição REPITA/ATE
Estrutura de Repetição PARA/FACA
Estrutura de Repetição PARA/FACA
Estrutura de Repetição PARA/FACA - Exemplo
algoritmo "ParaFaca"
var num, contador: inteiro
inicio
para contador de 1 ate 20 faca
escreva("Digite um valor ")
leia (num)
se (num >= 0) entao
escreval ("O número é positivo")
Estrutura de Repetição PARA/FACA – Exemplo -
continuação
senao
#include <stdio.h>
escreval ("O número é negativo") int num, contador;
int main()
fimse {
for (contador=1;contador<=20;contador=contador+1)
fimpara
{
fimalgoritmo printf("\nDigite um número: ");
scanf("%d",&num);
if (num>=0) // simplificando, zero positivo.
printf("\nO número é positivo");
else
printf("\nO número é negativo");
}
}
Estrutura de Repetição ENQUANTO/FACA –
(contador) Exemplo
algoritmo "ContadorEnquanto" se (num >= 0) entao
var num, contador: inteiro escreval ("O número é positivo")
inicio senao
escreval ("O número é negativo")
contador <-1
fimse
enquanto (contador <= 20) faca contador <- contador + 1
escreva("Digite um valor ") fimenquanto
leia (num) fimalgoritmo

Você também pode gostar