Você está na página 1de 34

MC-102 Aula 07 Comandos Repetitivos

Instituto de Computa c ao Unicamp

22 de Agosto de 2012

Roteiro

Exemplos com la cos Menu de Escolhas

La cos Encaixados Exemplos de la cos encaixados

Exerc cios

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

2 / 34

Menu de Escolhas

Em programas de computador, e comum a apresenta c ao de um menu de op c oes para o usu ario. Vamos fazer um menu com algumas op c oes, incluindo uma u ltima para encerrar o programa.

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

3 / 34

Menu de Escolhas

O programa ter a as seguintes op c oes: 1 - Cadastrar um produto. 2 - Buscar informa c oes de produto. 3 - Remover um produto. 4 - Sair do Programa. Ap os realizar uma das opera c oes, o programa volta para o menu.

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

4 / 34

Menu de Escolhas
O comportamento do seu programa deveria ser algo como:
do{ printf("1 printf("2 printf("3 printf("4

Cadastrar um produto\n"); Buscar informa c~ oes de produto\n"); Remover um produto\n"); Sair do programa\n");

printf("\nEntre com a op c~ ao: "); scanf("%d", &opcao); //Fa ca o que for esperado conforme op c~ ao digitada }while(opcao != 4);

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

5 / 34

Menu de Escolhas
int main(){ int opcao; do{ printf("1 printf("2 printf("3 printf("4

Cadastrar um produto\n"); Buscar informa c~ oes de produto\n"); Remover um produto\n"); Sair do programa\n");

printf("\nEntre com a op ca ~o: "); scanf("%d", &opcao); if(opcao == 1) printf("Cadastrando....\n\n\n"); else if(opcao == 2) printf("Buscando......\n\n\n"); else if(opcao == 3) printf("Removendo.....\n\n\n"); else if (opcao == 4) printf("Seu programa ser a encerrado.\n\n\n"); else printf("Op c~ ao Inv alida!\n\n\n"); }while(opcao != 4); }
(Instituto de Computa c ao Unicamp) MC-102 Aula 05 22 de Agosto de 2012 6 / 34

La cos Encaixados

Para resolver alguns problemas, e necess ario implementar um la co dentro de outro la co. Estes s ao la cos encaixados. int i,j; for(i=1;i<=10;i++){ for(j=1;j<=5;j++){ printf("\n i:%d j:%d",i,j); } }

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

7 / 34

Imprimir um quadrado

Problema
Imprimir a gura abaixo: * * * * * * * * * * * * * * * *

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

8 / 34

Imprimir um quadrado

Problema
Imprimir a gura abaixo: * * * * * * * * * * * * * * * *

Solu c ao
Imprima quatro linhas, cada linha com quatro asteriscos!

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

9 / 34

Imprimir um quadrado de lado vari avel


Problema
Imprimir um quadrado de lado N * * * * * * * * * * * * * * * *

Leia N Para i de 1 a N fa ca: Para j de 1 a N fa ca: imprima um asterisco imprima um final de linha

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

10 / 34

Imprimir um quadrado de lado vari avel


#include <stdio.h> int main(void) { int i,j,n; scanf("%d",&n); for (i=0;i<n;i++) { for (j=0;j<n;j++) { printf("* "); } printf("\n"); } }

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

11 / 34

Imprimir um Triangulo Ret angulo


Problema
Imprimir um tri angulo ret angulo com base de 4 asteriscos, como a gura abaixo. * * * * * * * * * * Na Na Na Na primeira linha, imprima um asterisco; segunda linha, imprima dois asteriscos; terceira linha, imprima tr^ es asteriscos; quarta linha, imprima quatro asteriscos.

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

12 / 34

Imprimir um Triangulo Ret angulo


Problema
Imprimir um tri angulo ret angulo com base de 4 asteriscos, como a gura abaixo. * * * * * * * * * * Para i de 1 a 4 fa ca: Para j de 1 a i fa ca: Imprima um asterisco Imprima um final de linha

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

13 / 34

Imprimir um Triangulo Ret angulo

#include <stdio.h> int main(void) { int i,j; for (i=0;i<4;i++) { for (j=0;j<=i;j++) { printf("*"); } printf("\n"); } }

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

14 / 34

Imprimir um Triangulo Ret angulo


Problema
Imprimir um tri angulo ret angulo com base vari avel de N asteriscos. * * * * * * * * * * Leia N Para i de 1 a N fa ca: Para j de 1 a i fa ca: Imprima um asterisco Imprima um final de linha

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

15 / 34

Imprimir um Triangulo Ret angulo


#include <stdio.h> int main(void) { int i,j,n; scanf("%d",&n); for (i=0;i<n;i++) { for (j=0;j<=i;j++) { printf("*"); } printf("\n"); } }

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

16 / 34

Imprimir um Triangulo Ret angulo


Problema
Imprimir um tri angulo ret angulo com lado de quatro asteriscos (ponta para baixo), como a gura abaixo. * * * * * * * * * * Na Na Na Na primeira linha, imprima quatro asteriscos; segunda linha, imprima tr^ es asteriscos; terceira linha, imprima dois asteriscos; quarta linha, imprima um asterisco.

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

17 / 34

Imprimir um Triangulo Ret angulo


Problema
Imprimir um tri angulo ret angulo com lado de quatro asteriscos (ponta para baixo). * * * * * * * * * * Para i de 4 a 1 fa ca: Para j de 1 a i fa ca: Imprima um asterisco Imprima um final de linha

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

18 / 34

Imprimir um Triangulo Ret angulo


#include <stdio.h> int main(void) { int i,j; for (i=4;i>0;i--) { for (j=0;j<i;j++) { printf("*"); } printf("\n"); } }

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

19 / 34

Imprimir um Triangulo Ret angulo


Problema
Imprimir um tri angulo ret angulo com lado vari avel (ponta para baixo). * * * * * * * * * * Leia N Para i de N a 1 fa ca: Para j de 1 a i fa ca: Imprima um asterisco Imprima um final de linha

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

20 / 34

Imprimir um Triangulo Ret angulo


Para um tri angulo de lado vari avel: #include <stdio.h> int main(void) { int i,j,n; scanf("%d", &n); for (i=n;i>0;i--) { for (j=0;j<i;j++) { printf("*"); } printf("\n"); } }

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

21 / 34

Imprimir um Triangulo Ret angulo


Problema
Imprimir um tri angulo ret angulo com lado vari avel (ponta para cima), como a gura abaixo. * * * * * * * * * * Leia N Para i de 0 a N-1 fa ca: Para j de 1 a N-i-1 fa ca: Imprima um branco Para j de 1 a i fa ca: Imprima um asterisco Imprima um final de linha
(Instituto de Computa c ao Unicamp) MC-102 Aula 05 22 de Agosto de 2012 22 / 34

Imprimir um Triangulo Ret angulo


#include <stdio.h> int main(void) { int i,j,n; scanf("%d",&n); for (i=0;i<n;i++) { for (j=0;j<n-i-1;j++) { // quando i=0 n~ ao imprime * printf(" "); } for (j=0;j<=i;j++) { // quando i=0 imprime um * printf("* "); } printf("\n"); } }
(Instituto de Computa c ao Unicamp) MC-102 Aula 05 22 de Agosto de 2012 23 / 34

Combina co es e arranjos

Problema
Suponha dois dados, um azul e um branco, cada um com faces que cont em apenas valores de 1 a 4. Imprima todas as combina co es poss veis para os resultados de uma jogada com desses dados. (Arranjos com repeti c ao) Exemplo: (1,4), (1,3) e (4,1) s ao combina c oes poss veis de resultados. Voc e pode imaginar que um resultado tem a forma (a, b ), onde a e o valor do resultado do dado azul e b e o resultado do dado branco.

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

24 / 34

Combina co es e arranjos
Problema
Suponha dois dados, os dois de cor branca, cada um com faces que cont em apenas valores de 1 a 4. Imprima todas as combina co es poss veis para os resultados de uma jogada com desses dados. (Arranjos sem repeti c ao) Exemplo: (1,4), (1,3) e (4,1) s ao combina c oes poss veis de resultados. Voc e pode imaginar que um resultado tem a forma (a, b ), onde a e o valor do resultado do dado azul e b e o resultado do dado branco. Para a de 1 a N fa ca: Para b de 1 a N fa ca: Imprima (a,b)

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

25 / 34

Combina co es e arranjos
Problema
Suponha dois dados, os dois de cor branca, cada um com faces que cont em apenas valores de 1 a 4. Imprima todas as combina co es poss veis para os resultados de uma jogada com desses dados. (Arranjos sem repeti c ao) #include <stdio.h> int main(void) { int a,b; for (a=1;a<=4;a++) { for (b=1;b<=4;b++) { printf("(%d,%d)\n",a,b); } } }
(Instituto de Computa c ao Unicamp) MC-102 Aula 05 22 de Agosto de 2012 26 / 34

Combina co es e arranjos
(1,1) (1,2) (1,3) (1,4) (2,1) (2,2) (2,3) (2,4) (3,1) (3,2) (3,3) (3,4) (4,1) (4,2) (4,3) (4,4)
(Instituto de Computa c ao Unicamp) MC-102 Aula 05 22 de Agosto de 2012 27 / 34

Combina co es e arranjos

Problema
Suponha dois dados, os dois de cor branca, cada um com faces que cont em apenas valores de 1 a 4. Imprima todas as combina co es poss veis para os resultados de uma jogada com desses dados. (Arranjos sem repeti c ao) Exemplo: (1,4) (1,3) s ao combina c oes poss veis mas (4,1) e o mesmo que (1,4) e n ao deve ser impresso.

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

28 / 34

Combina co es e arranjos

Problema
Suponha dois dados, os dois de cor branca, cada um com faces que cont em apenas valores de 1 a 4. Imprima todas as combina co es poss veis para os resultados de uma jogada com desses dados. (Arranjos sem repeti c ao) Exemplo: (1,4) (1,3) s ao combina c oes poss veis mas (4,1) e o mesmo que (1,4), j a que os dados s ao indistingu veis, e n ao deve ser impresso. Para i de 1 a N fa ca: Para j de 1 a i fa ca: Imprima (i,j)

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

29 / 34

Combina co es e arranjos
Problema
Suponha dois dados, os dois de cor branca, cada um com faces que cont em apenas valores de 1 a 4. Imprima todas as combina co es poss veis para os resultados de uma jogada com desses dados. (Arranjos sem repeti c ao) #include <stdio.h> int main(void) { int i,j; for (i=1;i<=4;i++) { for (j=1;j<=i;j++) { printf("(%d,%d)\n",i,j); } } }
(Instituto de Computa c ao Unicamp) MC-102 Aula 05 22 de Agosto de 2012 30 / 34

Combina co es e arranjos

(1,1) (2,1) (2,2) (3,1) (3,2) (3,3) (4,1) (4,2) (4,3) (4,4)

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

31 / 34

Exerc cio

Problema
Imprimir um tri angulo is osceles com base vari avel, de tamanho N ( mpar), como a gura abaixo. * * * * * * * * * * * * * * * *

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

32 / 34

Exerc cio

Problema
Imprima todas as combina c oes (com repeti c ao) poss veis para um jogo com tr es dados (normais, com faces de 1 a 6).

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

33 / 34

Exerc cio

Problema
Imprima todas as combina c oes (sem repeti c ao) poss veis para um jogo com tr es dados (normais, com faces de 1 a 6).

(Instituto de Computa c ao Unicamp)

MC-102 Aula 05

22 de Agosto de 2012

34 / 34

Você também pode gostar