Você está na página 1de 8

07/09/2023

• Unidade de Ensino: 03

• Competência da Unidade: Algoritmos e Técnicas de Programação.

• Resumo: Saber utilizar Algoritmos e Técnicas de Programação.


Estruturas de • Palavras-chave: Algoritmos e Técnicas de Programação;

decisão e repetição Programação; Desenvolvimento; Estruturas de decisão;


Algoritmos.

• Título da Teleaula: Estruturas de decisão e repetição.

• Teleaula nº: 03
Prof. Me. Wesley Viana

1 2

Contextualização
• Estruturas de decisão e repetição;

• Estruturas de decisão condicional; Estruturas de decisão e


• Estruturas de repetição condicional;
repetição
• Estruturas de repetição determinísticas.

3 4

Estruturas de decisão e repetição Estruturas de decisão e repetição


Estrutura condicional simples:
Estruturas de decisão condicional:

A sintaxe da instrução “if ” (se) utilizada na linguagem C:


Segundo Manzano (2013), para a solução de um problema
envolvendo situações, podemos utilizar a instrução “if ” (em
português “se”), cuja função é tomar uma decisão e criar um desvio
if <(condição)>
dentro do programa, para que possamos chegar a uma condição {
verdadeira ou falsa. <conjunto de comandos>;
}
Diante dessas informações, cabe uma pergunta: a estrutura
de decisão nos garante a viabilidade nas mais diferentes condicionais
de programação?

5 6
07/09/2023

Estruturas de decisão e repetição Estruturas de decisão e repetição


Estrutura condicional simples: 10. if (N1 == N2) Estrutura condicional composta:
11. {
Completa a nossa condição inicial com o comando “else”, que
12. printf("Os numeros sao iguais!");
1. #include <stdio.h> significa “se não”.
13. }
2. #include <stdlib.h>
14. printf("\n");
3. int main (void)
15. system("pause"); Representação da sintaxe:
4. {
16. return (0); if <(condição)>
5. int N1, N2 ;
17. }
{
6. printf("Digite o primeiro numero: <primeiro conjunto de comandos>;
");
}
7. scanf("%d", &N1);
else
8. printf("Digite o segundo numero:
");
{
9. scanf("%d", &N2);
<segundo conjunto de comandos>;
}

7 8

Estruturas de decisão e repetição


Estrutura condicional composta: 10. else
Estruturas de decisão e repetição
1. #include <stdio.h> 11. {printf("\n Joao e Maria irao optar por 10. if (N1 == N2)
Estrutura condicional composta:
uma viagem nacional, seu orcamento
2. #include <stdlib.h> 1. #include <stdio.h> 11. printf("Os numeros sao iguais!");
ficou em %0.2f", orcamento);}
3. int main (void) 2. #include <stdlib.h> 12. else
12. printf("\n");
4. { 3. int main (void) 13. printf("Os numeros sao
13. system("pause");
diferentes!");
5. float orcamento; 4. {
14. return (0);
6. printf("Digite o valor do orcamento 5. int N1, N2 ;
15. }
para viagem \n"); 14. printf("\n");
6. printf("Digite o primeiro numero:
7. scanf("%f", &orcamento); "); 15. system("pause");
8. if (orcamento >=10000) 7. scanf("%d", &N1); 16. return (0);
9. {printf("\n Joao e maria possuem 8. printf("Digite o segundo numero: 17. }
orcamento para uma viagem ");
internacional, pois seu orcamento e de
9. scanf("%d", &N2);
%0.2f", orcamento);}

9 10

Estruturas de decisão e repetição Estruturas de decisão e repetição


Estrutura condicional de seleção de casos (switch-case) Estrutura condicional de seleção de casos (switch-case)
Sintaxe em linguagem C:
Segundo Schildt (1997, p. 35), “testa sucessivamente o valor switch (variável)
de uma expressão contra uma lista de constantes inteiras ou de {
caractere”. Quando os valores são avaliados o comando é executado. case constante1:
<comandos>
break;
case constante2:
<comandos>
break;
default:
<comandos>
}

11 12
07/09/2023

Estruturas de decisão e repetição


Estrutura (switch-case) 13. case 2 : Estruturas de decisão e repetição
1. #include <stdio.h> 14. printf ("Aluna Maria\n");
15. break;
Estrutura condicional encadeada
2. #include <conio.h>
3. int main (void ) 16. case 3 :

4. { 17. printf ("Aluno Zezinho\n"); Segundo Schildt (1997), essa estrutura é um comando if que
5. int valor; 18. break; é o objeto de outros if e else. Em resumo, um comando else sempre
6. printf ("Digite o codigo do aluno 19. default : estará ligado ao comando if de seu nível de aninhamento.
de 1 a 3: "); 20. printf ("Codigo invalido!\n");
7. scanf("%d", &valor); 21. }
São estruturas de decisão encadeadas, quando uma
8. switch ( valor ) 22. getch();
estrutura de decisão está localizada dentro do lado falso da outra.
9. { 23. return 0;
Este tipo de estrutura também é conhecida como seleção “aninhada”
10. case 1 : 24. }
ou seleção “encaixada”.
11. printf ("Aluno Joao\n");
12. break;

13 14

Estruturas de decisão e repetição


Estruturas de decisão e repetição Estrutura condicional encadeada
1. #include<stdio.h>
12. else {
13. if (compras <= 5000) { /* Nessa condição
não é necessário por a condição de maior que
2. int main() {
Estrutura condicional encadeada (ifs aninhados) 3000, pois nesse if já é maior que 3000*/
3. float compras, desconto, taxa, totpagar;
14. taxa = 0.03;
15. }
Sintaxe: 4. compras = 3000; /* Modifique o valor da
16. else{
variavel compras e teste outras condições*/
17. taxa=0.02; /* Nessa condição não é
necessário por a condição de maior que 2000,
if (condição) comando; 5. if(compras <= 2000) { pois nesse if já é maior que 2000*/
else 6. taxa=0.1; 18. }
7. } 19. }
if (condição) comando;
8. else { 20. }
else(condição) comando;
9. if (compras <= 3000) { /* Nessa condição 21. desconto = compras * taxa;
... não é necessário por a condição de maior que
22. totpagar = compras - desconto;
2000, pois nesse if já é maior que 2000*/
else comando; 23. printf("O seu desconto foi de %0.2f e voce ira
10. taxa = 0.05;
pagar %0.2f reais.", desconto, totpagar);
11. }
24. }

15 16

Estruturas de repetição condicional


Segundo Soffner (2013, p. 64), o programa “não executará
nenhuma repetição (e as ações que ali dentro estiverem
programadas) sem antes testar uma condição”. Na realização dessa
Estruturas de repetição condição, vamos fazer uso do comando iterativo “while”, que
significa “enquanto” em português.
condicional
Algo será repetidamente executado enquanto uma condição
verdadeira for verificada e de que somente após a sua negativa essa
condição será interrompida.

17 18
07/09/2023

Estruturas de repetição condicional Estruturas de repetição condicional


Forma simplificada do fluxograma do comando while Em alguns casos, quando utilizamos um teste no início, pode
direcionado para o teste no início. ocorrer o famoso loop (laço) infinito (quando um processo é
executado repetidamente).

while (<condição>) Para que isso não aconteça, você poderá utilizar os seguintes
recursos:
{
Comando 1;
• Contador
Comando 2;
• Incremento e decremento
Comando n;
• Acumulador
}
• Condição de parada

19 20

Estruturas de repetição condicional Estruturas de repetição condicional


Estrutura repetição while 8. contador++; //atualizando a Estrutura repetição while 1. #include<stdio.h>

1. #include <stdio.h> variável de controle 2. int main()


1. #include <stdio.h> 3. {
2. int main(void) 9. }
2. int main() 4. int tabuada, variavel_contadora = 1, num;
3. { 10. system("PAUSE");
3. { 5. printf("Entre com um número: \n");
4. int contador = 1; 11. return 0; 4. int contador = 1; 6. scanf("%d",&num);
//declarando e inicializando a 12. } 7. while(variavel_contadora <= 10)
variável de controle 5. while (contador <= 11) 8. {
6. { 9. tabuada = num *variavel_contadora;

5. while (contador <= 10) // 7. printf("Hello World! \n"); 10. printf("%d x %d = %d\n",num,
8. contador++; variavel_contadora,tabuada);
Testando a condição
9. } 11. variavel_contadora++;
6. {
10. return 0; 12. }
7. printf("%d ", contador); 13. return 0;
11. }
//Executando um comando dentro 14. }
do laço

21 22

Estruturas de repetição condicional Estruturas de repetição condicional


Repetições com testes no final (do-while) A sintaxe para realização da repetição com teste no final:

Segundo Schildt (1997), o laço do-while analisa a condição Do


ao final do laço, ou seja, os comandos são executados antes do teste {
de condição. Nesse caso específico, o usuário tem a possibilidade de
comandos;
digitar novamente uma nova informação.
}
while (condição);

23 24
07/09/2023

Estruturas de repetição condicional


Estrutura repetição do/while 13. printf("Media do aluno = %0.2f\n",media);
1. #include<stdio.h>
2. int main(void) 14. printf("Digite 1 para continuar ou 2
3. { para sair\n");

4. float nota1=0,nota2=0,media=0; 15. scanf("%d", &resp);

5. int resp;
16. }while (resp==1);
Onde podemos utilizar
6.
7.
do
{ 17. return 0;
as vantagens da
8.
9.
printf("Digite a primeira nota: ");
scanf("%f",&nota1);
18. }
Estruturas de decisão e
10.
11.
printf("Digite a segunda nota: ");
scanf("%f",&nota2);
repetição?
12. media = (nota1 + nota2)/2;

25 26

Escrever um programa 1. #include <stdio.h>


em C que determina se um 2. int main() {
número inserido pelo usuário é 3. int numero;
par ou ímpar. 4. printf("Digite um numero inteiro: ");
Exercício: Escrever um 5. scanf("%d", &numero);

programa em C que 6.
7.
if (numero % 2 == 0) {
printf("O numero inserido e par.\n");
determina se um 8. } else {
9. printf("O numero inserido e
número inserido pelo impar.\n");

usuário é par ou ímpar. 10.


11.
}
return 0;
12. }

27 28

Estruturas de repetição determinísticas


Vamos iniciar falando da repetição com variáveis de controle,
ou seja, como aplicaremos o laço “for”. Esse comando, que em
Estruturas de repetição português significa “para”, segundo Mizrahi (2008), é geralmente
usado para repetir uma informação por um número fixo de vezes,
determinísticas isto é, podemos determinar quantas vezes acontecerá a repetição.

29 30
07/09/2023

Estruturas de repetição determinísticas Estruturas de repetição determinísticas


A sintaxe usando a linguagem de programação em C fica da seguinte Na aplicação do comando “for”, você encontra três
forma: expressões separadas por ponto e vírgula.

for(inicialização; condição final; incremento) • Inicialização:


{ • Condição final:
comandos; • Incremento:
}

31 32

Estruturas de repetição determinísticas


Estruturas de repetição determinísticas
Exemplo: Exemplo:
Representação em um programa 1. #include <stdio.h>
que mostra uma sequência de números, 1. #include <stdio.h> 2. #include <conio.h>

em que x vai de 10 a 0 e y vai de 0 a 10. 3. int main(void)


2. int main()
4. {
3. {
5. int contador; //variável de controle do loop
4. int x,y;
6. for(contador = 1; contador <= 10;
5. for(x = 10,y = 0; x >= 0, y <= 10; x-- contador++)
,y++)
7. //for(contador = 10; contador >= 1;
6. { contador--)
7. printf("x=%2d, y=%2d\n",x,y); 8. {
8. } 9. printf("%d ", contador);
9. return 0; 10. }

10. } 11. getch();


12. return(0);
13. }

33 34

Estruturas de repetição determinísticas


Estruturas de repetição determinísticas
Exemplo: Exemplo:
1. #include <stdio.h> 1. #include <stdio.h> Vetores
2. #include <conio.h> 2. int main(){
3. int main(void) 3. int a1, r, n, i;
4. {
Segundo Manzano (2013; 2015), vetor (array) é um tipo
5. int i;//variável de controle do loop 4. printf("\nDigite o primeiro termo, a razão e
especial de variável, capaz de armazenar diversos valores “ao mesmo
quantos termos você deseja:\n"); tempo”, usando um mesmo endereço na memória. Por armazenar
6. for (i = 1; i <= 10; i++) 5. scanf("%d%d%d",&a1, &r, &n); diversos valores, também é chamado de variável composta ou,
7. { ainda, de estrutura matricial de dados.
8. printf("Aprendendo Linguagem C\n"); 6. for (i=1; i<n; i++){

9. } 7. printf("\n\n%d\n", (a1= a1*r));


8. } A sintaxe abaixo para utilização de vetores homogêneos:
10. getch();
11. return(0); 9. return(0);

12. } 10. } tipo variavel [n]

35 36
07/09/2023

Estruturas de repetição determinísticas Estruturas de repetição determinísticas


Exemplo: 5. //captura os elementos
1. #include <stdio.h> 6. for(i=0;i<5;i++){ • Variáveis compostas homogêneas unidimensionais (vetores);
2. void main () 7. printf("Elemento[%d]= ",i); 1. #include<stdio.h> 1. #include<stdio.h>

3. { 8. scanf("%d",&v[i]); 2. main(){ 2. #include<conio.h>

4. int num[5]; 9. } 3. int idade[3]; 3. int main(void)

5. printf("Entre com um numero\n"); 4. float altura[3] = {1,1.5,1.7}; 4. {


10. //EXIBIR VALORES ORIGINAIS
6. scanf("%d", &num[0]); 5. float notas[5] = {7, 8, 9.5, 9.9, 5.2};
11. printf("\n::: Valores originais :::\n");
7. printf("O valor digitado foi: %d", num [0]); 6. printf("Exibindo os Valores do Vetor \n\n");
12. for(i=0;i<5;i++) 5. printf("\n Vetor altura[0] =
8. getchar(); %.2f",altura[0]); 7. printf("notas[0] = %.1f\n", notas[0]);
13. printf("%d\n",v[i]);
9. } 6. printf("\n Vetor altura[1] = 8. printf("notas[1] = %.1f\n", notas[1]);
14. //EXIBIR VALORES ORIGINAIS
%.2f",altura[1]); 9. printf("notas[2] = %.1f\n", notas[2]);
15. printf("\n::: Valores na ordem inversa
Exemplo: :::\n");
7. printf("\n Vetor altura[2] = 10. printf("notas[3] = %.1f\n", notas[3]);

1. #include <stdio.h> %.2f",altura[2]); 11. printf("notas[4] = %.1f\n", notas[4]);


16. for(i=4;i>=0;i--)
2. #include <stdlib.h> 8. } 12. getch();
17. printf("%d\n",v[i]);
13. return 0;
3. int main(){ 18. return 0;
14. }
4. int i, v[5]; 19. }

37 38

Estruturas de repetição determinísticas


Estruturas de repetição determinísticas
1. #include <stdio.h>
Segundo Damas (2016), uma
2. main()
instrução continue, dentro de um laço, Matrizes
3. {
possibilita que a execução de
4. int i;
comandos corrente seja terminada,
5. for (i=1; i<=100;i=i+1) “Matrizes são arranjos de duas ou mais dimensões. Assim
passando à próxima iteração do laço, 6. if (i==30)
ou seja, quando usamos o continue como nos vetores, todos os elementos de uma matriz são do mesmo
7. break;
dentro de um laço, este é passado tipo, armazenando informações semanticamente semelhantes”
8. else
(EDELWEISS, 2014, p.196).
para a próxima iteração. 9. if (i%2==1)
10. continue;
11. else
12. printf("%2d\n",i);
13. printf("Termino do laco\n");
14. }

39 40

Estruturas de repetição determinísticas Estruturas de repetição determinísticas


• Variáveis compostas homogêneas bidimensionais (Matriz);
Importante lembrar que:
1. #include <stdio.h> 12. scanf("%d", &matriz[linha][coluna]);

2. #include <stdlib.h> 13. }


Em qualquer variável composta, o índice começa por zero,
14. }
3. main()
então, em uma matriz, o primeiro espaço para armazenamento é 15. printf("Veja a sua Matriz\n");
4. {
sempre (0,0), ou seja, índice 0 tanto para linha como para coluna. 16. for (linha=0;linha<=2;linha++)
5. int linha,coluna;
17. {
6. int matriz[3][3]; 18. for (coluna=0;coluna<3;coluna++)
Não é obrigatório que todas as posições sejam ocupadas, 7. for (linha=0; linha<3; linha++) 19. printf("%d\t",matriz[linha][coluna]);

sendo possível declarar uma matriz com 10 linhas (ou colunas) e 8. { 20. printf("\n\n");

9. for (coluna=0; 21. }


usar somente uma.
coluna<3;coluna++) 22. system("pause");

10. { 23. return 0;


24. }
A sintaxe de matrizes: 11. printf("Digitar os valores da matriz
para: linha %d, coluna %d:
tipo variável [M][N] ",linha+1,coluna+1);

41 42
07/09/2023

Estruturas de repetição determinísticas


• Variáveis compostas homogêneas bidimensionais (Matriz);
1. #include <stdio.h> 15. printf("%d ",m[i][j]);

2. #include <stdlib.h> 16. printf("\n");


17. }
3. int main(){
18. //multiplica por 5
4. int i, j, m[3][3];
19. for(i=0;i<3;i++)
5. //captura os elementos
6. for(i=0;i<3;i++)
20.
21.
for(j=0;j<3;j++)
m[i][j]=m[i][j]*5;
Qual a importância de
7. for(j=0;j<3;j++){ 22. //EXIBIR VALORES MULTIPICADOS
8.
9.
printf("Elemento[%d][%d]= ",i,j);
scanf("%d",&m[i][j]);
23.
24.
printf("\n::: Valores Multiplicados por 5:::\n");
for(i=0;i<3;i++){ saber utilizar
10. } 25. for(j=0;j<3;j++)

Estruturas de repetição
26. printf("%d ",m[i][j]);
11. //EXIBIR VALORES ORIGINAIS
27. printf("\n");
12. printf("\n::: Valores Originais
28. }
:::\n");
29. return 0;
13.
14.
for(i=0;i<3;i++){
for(j=0;j<3;j++)
30. } determinísticas?

43 44

Recapitulando
• Estruturas de decisão e repetição;

• Estruturas de decisão condicional;

Recapitulando • Estruturas de repetição condicional;

• Estruturas de repetição determinísticas.

45 46

Você também pode gostar