Escolar Documentos
Profissional Documentos
Cultura Documentos
Pode ser:
Alternativa Simples
Alternativa Dupla
Alternativa Múltipla Escolha
2
Sintaxe:
se (<condição>)
{
Comando;
}
3
Exemplo 1:
X 10;
MAX 20;
se (X > MAX)
{
MAX X;
}
4
Exemplo 2:
X 10;
MAX 5;
se (X > MAX)
{
MAX X;
}
5
Analogia:
Pseudolinguagem Linguagem C
se (<condição>) if (condição)
{ {
C; C;
} }
6
Analogia:
Pseudolinguagem Linguagem C
se (<condição>) if (condição)
{ {
C; C;
} }
Obs.: Se houver só um
comando no então, não
precisa usar chaves
({bloco}).
7
Analogia: imprimir o MAIOR entre A e B
#include <stdio.h>
principal int main()
{ {
inteiro a, b, maior; int a, b, maior;
a 9; a = 9;
b 2; b = 2;
maior b; maior = b;
se (a > maior) if (a > maior)
{ maior = a;
maior a;
}
imprima(maior); printf ( \nMAIOR = %d , maior);
} return 0;
}
8
Sintaxe:
9
Analogia:
Pseudolinguagem Linguagem C
10
Analogia: imprimir o MAIOR entre A e B
#include <stdio.h>
principal int main()
{ {
inteiro A, B, MAIOR; int a, b, maior;
A 9; a = 9;
B 2; b = 2;
se (A > B) if (a > b)
{ {
MAIOR A; maior = a;
} }
senão else
{ {
MAIOR B; maior = b;
} }
imprima(MAIOR); printf ( \nMAIOR = %d , maior);
return 0;
} }
11
Sintaxe:
escolha (<expressão>)
{
caso V1 : C1;
caso V2 : C2;
. . . . . . . .. . . . . .
caso Vn : Cn;
senão : Cn+1;
}
12
Pseudolinguagem Linguagem C
13
Exemplo:
#include <stdio.h>
principal int main()
{ {
inteiro EPOCA; int epoca;
imprima( Digite o número do trimestre: ); printf("Digite o número do trimestre:");
leia(EPOCA); scanf("%d , &epoca);
escolha (EPOCA) switch (epoca)
{ {
caso 1: imprima( verão ); case 1: printf("verão");
break;
caso 2: imprima( outono ); case 2: printf ("outono");
break;
caso 3: imprima( inverno ); case 3: printf ("inverno");
break;
caso 4: imprima( primavera ); case 4: printf ("primavera");
break;
senão: imprima( período inválido ); default: printf( Trimestre inválido");
} }
return 0;
} } 14
Construir um algoritmo para ler os coeficientes A, B e C de
uma equação do segundo grau e se:
Delta for negativo: imprimir a mensagem Não há
solução real .
Delta for maior ou igual a zero: calcular e imprimir as
raízes da equação.
Método Direto
15
1) Enunciado está entendido?
Para resolver o problema é necessário saber a equação
de 2º grau. Esta equação tem a seguinte forma:
(-B ± raiz(DELTA)) / (2*A) onde DELTA = (B**2 4*A*C)
16
2) Quais variáveis serão necessárias?
17
3) Quais métodos serão utilizados?
Por se tratar de uma condição, utilizaremos a estrutura de
controle de alternativa.
18
4) Elaborar o Algoritmo para resolver o problema
principal
{
real A, B, C, DELTA, X1, X2;
imprima( Leia os coeficientes A, B e C da equação de 2º grau );
leia(A,B,C);
DELTA (B*B 4*A*C);
se (DELTA 0)
{
X1 (-B + raiz(DELTA)) / (2*A);
X2 (-B - raiz(DELTA)) / (2*A);
imprima( Raizes da equação: , X1, X2);
}
senão
{
imprima ( Não existem raízes reais );
}
}
19
5) Testar o algoritmo Entradas A = 1, B = 5, C = 4
Saídas esperadas: -1 e -4
principal
{
real A, B, C, DELTA, X1, X2;
imprima( Leia os coeficientes A, B e C da equação de 2º grau );
leia(A,B,C);
DELTA (B*B 4*A*C);
se (DELTA 0)
{
X1 (-B + raiz(DELTA)) / (2*A);
X2 (-B - raiz(DELTA)) / (2*A);
imprima( Raizes da equação: , X1, X2);
}
senão
{
imprima ( Não existem raízes reais );
}
}
20
5) Testar o algoritmo Entradas A = 1, B = 5, C = 4
Saídas esperadas: -1 e -4
principal
{
real A, B, C, DELTA, X1, X2;
imprima( Leia os coeficientes A, B e C da equação de 2º grau );
leia(A,B,C);
DELTA (5*5 4*1*4);
se (DELTA 0)
{
X1 (-B + raiz(DELTA)) / (2*A);
X2 (-B - raiz(DELTA)) / (2*A);
imprima( Raizes da equação: , X1, X2);
}
senão
{
imprima ( Não existem raízes reais );
}
}
21
5) Testar o algoritmo Entradas A = 1, B = 5, C = 4
Saídas esperadas: -1 e -4
principal
{
real A, B, C, DELTA, X1, X2;
imprima( Leia os coeficientes A, B e C da equação de 2º grau );
leia(A,B,C);
DELTA (5*5 4*1*4);
se (9 0)
{
X1 (-B + raiz(DELTA)) / (2*A);
X2 (-B - raiz(DELTA)) / (2*A);
imprima( Raizes da equação: , X1, X2);
}
senão
{
imprima ( Não existem raízes reais );
}
}
22
5) Testar o algoritmo Entradas A = 1, B = 5, C = 4
Saídas esperadas: -1 e -4
principal
{
real A, B, C, DELTA, X1, X2;
imprima( Leia os coeficientes A, B e C da equação de 2º grau );
leia(A,B,C);
DELTA (5*5 4*1*4);
se (9 0)
{
X1 (-5 + raiz(9)) / (2*1);
X2 (-5 - raiz(9)) / (2*1);
imprima( Raizes da equação: , X1, X2);
}
senão
{
imprima ( Não existem raízes reais );
}
}
23
5) Testar o algoritmo Entradas A = 1, B = 5, C = 4
Saídas esperadas: -1 e -4
principal
{
real A, B, C, DELTA, X1, X2;
imprima( Leia os coeficientes A, B e C da equação de 2º grau );
leia(A,B,C);
DELTA (5*5 4*1*4);
se (9 0)
{
-1 (-5 + raiz(9)) / (2*1);
-4 (-5 - raiz(9)) / (2*1);
imprima( Raizes da equação: , -1, -4);
}
senão
{
imprima ( Não existem raízes reais );
}
}
24
6) Traduzir o algoritmo para um programa
#include <stdio.h>
#include <math.h>
int main()
{
float a, b, c, delta, x1, x2;
printf("Leia os coeficientes A, B e C da equação de 2º grau: ");
scanf("%f %f %f", &a, &b, &c);
delta = pow(b,2) - 4*a*c;
if(delta >= 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b - sqrt(delta)) / (2*a);
printf("Raizes da equação: %f %f", x1, x2);
}
else
{
printf("Não existem raízes reais");
}
return 0;
}
25
7) Documentação:
O conjunto de documentos produzidos ao longo
do método direto constitui a primeira
documentação técnica do programa.
26
1. Ler dois números inteiros e informar se o primeiro valor
lido é maior, menor ou igual ao segundo.
27
4. Altere o algoritmo anterior para que seja informado se o
número é divisível por 2 e por 3, mas que não seja
divisível por 5.
29
9. Elaborar um algoritmo para ler o código de um produto e
informar a sua origem:
a) Código do produto entre 1 e 20: Europa
b) Código do produto entre 21 e 40: Ásia
c) Código do produto entre 41 e 60: América
d) Código do produto entre 61 e 80: África
e) Código do produto maior que 80: Paraguai
30
a) Imprimir o seguinte menu:
Forma de pagamento:
1. A vista.
2. Cheque para trinta dias.
3. Em duas vezes.
4. Em três vezes.
5. Em quatro vezes.
6. A partir de cinco vezes.
Entre com sua opção:
31
c) Imprimir uma das mensagens de acordo com a
opção lida:
Opção = 1: Desconto de 20%
Opção = 2, 3 ou 4: Mesmo preço a vista
Opção = 5: Juros de 3% ao mês
Opção = 6: Juros de 5% ao mês
Opção <1 ou opção >6: Opção inválida
32
DCC 120 Laboratório de Programação
Declaração de variáveis
Operadores
Expressões
Impressão de dados (monitor)
printf("expressão de controle", argumentos);
Leitura de dados (teclado):
scanf("expressão de controle", argumentos);
Exemplos:
scanf( %d , &a);
scanf( %f , &f1);
34
O comando if é uma estrutura de decisão que decide se uma sequência de
comandos será ou não executada. Sua sintaxe é:
if (<expressão>)
{
<sequência de comandos>
}
Ou
#include <stdio.h>
int main()
{
float a, b, maior;
printf("Digite os dois numeros");
scanf("%f %f", &a, &b);
maior = a;
if (b > a) maior = b;
printf("O maior entre numeros %f , %f e' %f ", a, b, maior);
return 0;
}
36
Exemplo: Ler duas variáveis (x e y) e imprimí-las na ordem crescente.
#include <stdio.h>
int main()
{
float x, y, aux;
printf("Digite os dois numeros");
scanf("%f %f", &x, &y);
printf("Conteudos originais de x e de y: %f , %f \n: ", x, y);
if (y < x)
{
aux = x;
x = y;
y = aux;
}
printf("Conteudos de x e de y ordenados: %f , %f: \n", x, y);
return 0;
}
37
O comando if pode decidir entre duas sequências de comandos qual vai
ser a executada, tendo a seguinte sintaxe:
if (<expressão>)
{ // caso a expressão verificada retorne verdadeiro
<sequência de comandos>
}
else
{ // caso a expressão verificada retorne falso
<sequência de comandos>
}
38
Exemplo: Verificar a paridade de um número.
#include <stdio.h>
main()
{
int x;
printf("Digite o numero: ");
scanf("%d", &x);
if (x % 2 == 0)
printf("%d e' par \n", x);
else
printf("%d e' impar \n", x);
return 0;
}
41
Utilizado quando uma determinada variável pode ser igual a
diferentes valores que se deseja avaliar
sintaxe:
switch (variável)
{
case constante1: <comandos>
break;
case constante2: <comandos>
break;
default: <comandos>
}
42
int main()
{
int epoca;
printf("Digite o trimestre do ano em que estamos: ");
scanf("%d",&epoca);
switch (epoca)
{
case 1: printf("verão");
break;
case 2: printf("outono");
break;
case 3: printf("inverno");
break;
case 4: printf("primavera");
break;
default: printf("período inválido");
}
return 0;
}
43
1. Faça um programa para ler dois número inteiros, faça a
divisão do primeiro pelo segundo (se o segundo for
diferente de zero).
2. Faça um programa para ler dois números reais e verificar
se ambos são maiores que zero. Caso positivo, informar
Valores são válidos . Caso contrário, informar Valores
inválidos .
3. Tendo como dados de entrada a altura e o sexo de uma
pessoa, construa um programa que calcule seu peso
ideal, utilizando as seguintes fórmulas:
para homens: (72.7*h)-58
para mulheres: (62.1*h)-44.7
4. Faça um programa que leia 3 comprimentos (x,y e z) e
responda se eles formam um triângulo, ou seja, se
x < y + z e y < x + z e z < x + y.
5. Fazer um algoritmo para ler dois números e um dos
símbolos das operações: +, -, * e /. Imprimir o resultado
da operação efetuada sobre os números lidos.
44
6. Faça um programa para ler um caracter e imprimir as seguintes
mensagens, segundo o caso:
Sinal de Menor
Sinal de maior
Sinal de Igual
Outro caracter