1 / 37

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014. Capítulo VIII Strings, Estruturas e Subprogramas sem Parâmetros. Tema do Lab 8: Copa do Mundo de 2014 - 1ª Fase Ler as informações sobre a primeira fase da copa e fazer um relatório contendo, para cada um dos 8 grupos:

lynnea
Download Presentation

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CES-10 INTRODUÇÃO À COMPUTAÇÃOAulas Práticas – 2014 Capítulo VIII Strings, Estruturas e Subprogramas sem Parâmetros

  2. Tema do Lab 8: Copa do Mundo de 2014 - 1ª Fase • Ler as informações sobre a primeira fase da copa e fazer um relatório contendo, para cada um dos 8 grupos: • Os resultados dos jogos • Uma tabela contendo os nomes das seleções e mais seus pontos ganhos, seu números de vitórias, de gols marcados, de gols sofridos e saldos de gols • O nome da seleção primeira e segunda colocada

  3. Tema do Lab 8: Copa do Mundo de 2014 - 1ª Fase • Os nomes das 32 seleções devem ser lidos de um arquivo • Os resultados de todos os jogos de cada grupo devem ser fornecidos pelo operador • O referido relatório deve ser escrito num arquivo

  4. Sejam as declarações à esquerda Programa 8.1: Leitura dos nomes das seleções e montagem da estrutura de todos os grupos e suas informações typedef char cadeia[26]; typedef struct selecaoselecao; struct selecao { cadeia nome; int pontos, vitorias, golspro, golscontra, saldogols; }; tipo selecao São as informações sobre uma seleção nome pontos golspro golscontra saldogols vitorias

  5. Sejam agora as declarações para um grupo de seleções typedef struct grupo grupo; struct grupo { char nome; selecaoVetorSelecoes[5]; int Resultados[6][2]; cadeia primeiro, segundo; }; grupo VetorGrupos[9]; O elemento zero de VetorSelecoes não será usado Sua representação gráfica tipo grupo nome primeiro segundo 0 0 VetorSelecoes 0 ####### cadeia cadeia char 0 int int int int int int int int int int int int 1 selecao 1 2 selecao 2 3 selecao 3 4 selecao 4 5 Resultados

  6. O elemento zero de VetorGrupos não será usado grupo VetorGrupos[9]; VetorGrupos

  7. A matriz Resultados: Seleção 1 x Seleção 3 Seleção 3 x Seleção 4 Seleção 1 x Seleção 2 Seleção 1 x Seleção 4 Seleção 2 x Seleção 3 Seleção 2 x Seleção 4 1ª Rodada 0 0 VetorSelecoes 0 int int 2ª Rodada ####### 0 1 int int selecao 1 2 int int 3ª Rodada selecao 2 3 int int selecao 3 int int 4 selecao 4 int int 5 Resultados

  8. Copiar, salvar e executar o programa à esquerda #include <stdio.h> #include <stdlib.h> #include <string.h> typedef char cadeia[26]; /* Estrutura para as informacoes sobre cada selecao em seu grupo */ typedef struct selecaoselecao; struct selecao { cadeia nome; int pontos, vitorias, golspro, golscontra, saldogols; }; Continua no próximo slide

  9. /* Estrutura para as informacoes de cada grupo */ typedef struct grupo grupo; struct grupo { char nome; selecaoVetorSelecoes[5]; int Resultados[6][2]; cadeia primeiro, segundo; }; /* Variaveis globais */ FILE *FileIn, *FileOut; grupo VetorGrupos[9]; O arquivo com os nomes das 32 seleções é fornecido pelo professor: ListaSelecoes.txt (aba de Códigos da página) Abrir esse arquivo Continua no próximo slide

  10. /* Funcao LerSelecoes: leitura dos nomes das selecoes e colocacao em seus respectivos grupos */ void LerSelecoes () { int i, j, lenght; char nomegrupo, c; for (i = 1, nomegrupo = 'A'; i <= 8; nomegrupo++, i++) { VetorGrupos[i].nome = nomegrupo; for (j = 1; j <= 4; j++) { fgets(VetorGrupos[i].VetorSelecoes[j].nome,31,FileIn); lenght = strlen (VetorGrupos[i].VetorSelecoes[j].nome); VetorGrupos[i].VetorSelecoes[j].nome[lenght-1] = '\0'; VetorGrupos[i].VetorSelecoes[j].pontos = 0; VetorGrupos[i].VetorSelecoes[j].vitorias = 0; VetorGrupos[i].VetorSelecoes[j].golspro = 0; VetorGrupos[i].VetorSelecoes[j].golscontra = 0; VetorGrupos[i].VetorSelecoes[j].saldogols = 0; } } } 0 1 2 lenght-1 lenght 25 ----------------------------- \n \0 ------------------ Nenhuma seleção tem mais de 20 caracteres O <enter> será o último caractere armazenado, antes do ‘\0’; ele deve ser eliminado Continua no próximo slide

  11. /* Funcao EscreverGrupos: escrita das informacoes sobre os grupos */ void EscreverGrupos () { int i, j; for (i = 1; i <= 8; i++) { fprintf (FileOut, "\n\nGRUPO %c: ", VetorGrupos[i].nome); fprintf (FileOut, "\n\n%-20s|%8s|%8s|%8s|%8s|%8s", "Selecao", "Pontos", "Vitorias", "GolsPro", "GolsCon", "SaldGols"); fprintf (FileOut, "\n--------------------|--------|--------|--------|--------|--------"); for (j = 1; j <= 4; j++) fprintf (FileOut, "\n%-20s|%8d|%8d|%8d|%8d|%8d", VetorGrupos[i].VetorSelecoes[j].nome, VetorGrupos[i].VetorSelecoes[j].pontos, VetorGrupos[i].VetorSelecoes[j].vitorias, VetorGrupos[i].VetorSelecoes[j].golspro, VetorGrupos[i].VetorSelecoes[j].golscontra, VetorGrupos[i].VetorSelecoes[j].saldogols); } } Continua no próximo slide

  12. /* Funcao main */ int main () { /* Abertura dos arquivos de entrada e de saida */ FileIn = fopen ("ListaSelecoes.txt", "r"); FileOut = fopen ("RelatorioCopa2014.txt", "w"); fprintf (FileOut, "COPA DO MUNDO DE 2014"); /* Avisos de sobre os arquivos de entrada e saida */ printf ("Processamento das informacoes da Copa do Mundo de 2014\n\n"); printf ("\tArquivo ListaSelecoes.txt: Contem o nome das 32 selecoes da Copa\n\n"); printf ("\tArquivo RelatorioCopa2014.txt: Relatorio da Copa\n"); /* Processamento das informacoes sobre a Copa */ LerSelecoes (); EscreverGrupos (); /* Fechamento da tela */ printf ("\n\n"); system ("pause"); return 0; } /* Fim da funcao main */

  13. No vídeo: Processamento das informacoes da Copa do Mundo de 2014 Arquivo ListaSelecoes.txt: Contem o nome das 32 selecoes da Copa Arquivo RelatorioCopa2014.txt: Relatorio da Copa Pressione qualquer tecla para continuar. . . Resultado da execução

  14. No arquivo RelatorioCopa2014.txt: COPA DO MUNDO DE 2014 GRUPO A: Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Brasil | 0| 0| 0| 0| 0 Croacia | 0| 0| 0| 0| 0 Mexico | 0| 0| 0| 0| 0 Camaroes | 0| 0| 0| 0| 0 GRUPO B: Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Espanha | 0| 0| 0| 0| 0 Holanda | 0| 0| 0| 0| 0 Chile | 0| 0| 0| 0| 0 Australia | 0| 0| 0| 0| 0

  15. No arquivo RelatorioCopa2014.txt: GRUPO C: Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Colombia | 0| 0| 0| 0| 0 Grecia | 0| 0| 0| 0| 0 Costa do Marfim | 0| 0| 0| 0| 0 Japao | 0| 0| 0| 0| 0 GRUPO D: Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Uruguai | 0| 0| 0| 0| 0 Costa Rica | 0| 0| 0| 0| 0 Inglaterra | 0| 0| 0| 0| 0 Italia | 0| 0| 0| 0| 0

  16. No arquivo RelatorioCopa2014.txt: GRUPO E: Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Suica | 0| 0| 0| 0| 0 Equador | 0| 0| 0| 0| 0 Franca | 0| 0| 0| 0| 0 Honduras | 0| 0| 0| 0| 0 GRUPO F: Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Argentina | 0| 0| 0| 0| 0 BosniaHerzegovina | 0| 0| 0| 0| 0 Ira | 0| 0| 0| 0| 0 Nigeria | 0| 0| 0| 0| 0

  17. No arquivo RelatorioCopa2014.txt: GRUPO G: Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Alemanha | 0| 0| 0| 0| 0 Portugal | 0| 0| 0| 0| 0 Gana | 0| 0| 0| 0| 0 Estados Unidos | 0| 0| 0| 0| 0 GRUPO H: Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Belgica | 0| 0| 0| 0| 0 Argelia | 0| 0| 0| 0| 0 Russia | 0| 0| 0| 0| 0 Coreia do Sul | 0| 0| 0| 0| 0

  18. Exercício do Lab 8: • Leitura e armazenamento dos resultados das três rodadas da 1ª Fase da Copa Para cada grupo os resultados devem ser guardados no campo-matriz Resultados de cada estrutura grupo do vetor VetorGrupos 0 0 0 int int 1ª Rodada 1 int int 2 int int 2ª Rodada 3 int int int int 4 3ª Rodada int int 5 Resultados

  19. Exercício do Lab 8: • Cálculo dos pontos, do número de vitórias, de gols-pró, de gols-contra e do saldo de gols de cada seleção de cada grupo Esse cálculo deve usar o conteúdo da matriz Resultados de cada estrutura grupo do vetor VetorGrupos Os valores calculados devem ser armazenados no campo VetorSelecoesde cada estrutura grupo de VetorGrupos tipo selecao nome pontos golspro golscontra saldogols vitorias

  20. Exercício do Lab 8: • Determinação das seleções primeira e segunda colocada de cada grupo Esse cálculo deve usar o conteúdo do vetor VetorSelecoesde cada estrutura grupo do vetor VetorGrupos Os resultados devem ser armazenados nos campos primeiro e segundo de cada estrutura grupo do vetor VetorGrupos • Critérios de desempate: • Pontuação • Número de vitórias • Saldo de gols • Gols marcados • Ordem alfabética

  21. Exercício do Lab 8: • Escrita de todas as informações de VetorGrupos no arquivo RelatorioCopa2014.txt Os próximos slides mostram uma possível saída no vídeo e no arquivo RelatorioCopa2014.txt

  22. No vídeo: Processamento das informacoes da Copa do Mundo de 2014 Arquivo ListaSelecoes.txt: Contem o nome das 32 selecoes da Copa Arquivo RelatorioCopa2014.txt: Relatorio da Copa Digite os resultados da 1a rodada do Grupo A: Brasil x Croacia: 2 0 Mexico x Camaroes: 3 1 Digite os resultados da 1a rodada do Grupo B: Espanha x Holanda: 4 3 Chile x Australia: 3 1 Digite os resultados da 1a rodada do Grupo C: Colombia x Grecia: 3 2 Costa do Marfim x Japao: 0 4 Digite os resultados da 1a rodada do Grupo D: Uruguai x Costa Rica: 3 1 Inglaterra x Italia: 0 0 Em amarelo: Digitação do operador

  23. Digite os resultados da 1a rodada do Grupo E: Suica x Equador: 3 2 Franca x Honduras: 3 0 Digite os resultados da 1a rodada do Grupo F: Argentina x BosniaHerzegovina: 3 0 Ira x Nigeria: 2 3 Digite os resultados da 1a rodada do Grupo G: Alemanha x Portugal: 2 2 Gana x Estados Unidos: 1 3 Digite os resultados da 1a rodada do Grupo H: Belgica x Argelia: 2 0 Russia x Coreia do Sul: 1 1

  24. Digite os resultados da 2a rodada do Grupo A: Brasil x Mexico: 1 1 Croacia x Camaroes: 2 3 Digite os resultados da 2a rodada do Grupo B: Espanha x Chile: 3 2 Holanda x Australia: 3 1 Digite os resultados da 2a rodada do Grupo C: Colombia x Costa do Marfim: 1 0 Grecia x Japao: 2 0 Digite os resultados da 2a rodada do Grupo D: Uruguai x Inglaterra: 1 1 Costa Rica x Italia: 1 3

  25. Digite os resultados da 2a rodada do Grupo E: Suica x Franca: 2 2 Equador x Honduras: 2 0 Digite os resultados da 2a rodada do Grupo F: Argentina x Ira: 3 3 BosniaHerzegovina x Nigeria: 2 3 Digite os resultados da 2a rodada do Grupo G: Alemanha x Gana: 3 1 Portugal x Estados Unidos: 2 1 Digite os resultados da 2a rodada do Grupo H: Belgica x Russia: 3 2 Argelia x Coreia do Sul: 1 1

  26. Digite os resultados da 3a rodada do Grupo A: Brasil x Camaroes: 3 1 Croacia x Mexico: 2 4 Digite os resultados da 3a rodada do Grupo B: Espanha x Australia: 3 0 Holanda x Chile: 2 2 Digite os resultados da 3a rodada do Grupo C: Colombia x Japao: 1 2 Grecia x Costa do Marfim: 2 0 Digite os resultados da 3a rodada do Grupo D: Uruguai x Italia: 2 1 Costa Rica x Inglaterra: 0 3

  27. Digite os resultados da 3a rodada do Grupo E: Suica x Honduras: 2 1 Equador x Franca: 1 3 Digite os resultados da 3a rodada do Grupo F: Argentina x Nigeria: 2 1 BosniaHerzegovina x Ira: 2 1 Digite os resultados da 3a rodada do Grupo G: Alemanha x Estados Unidos: 2 1 Portugal x Gana: 3 1 Digite os resultados da 3a rodada do Grupo H: Belgica x Coreia do Sul: 2 1 Argelia x Russia: 1 1 Pressione qualquer tecla para continuar. . . Processreturned 0 (0x0) execution time : 835.480 s Pressanykey to continue.

  28. No arquivo RelatorioCopa2014.txt: COPA DO MUNDO DE 2014 GRUPO A: Brasil 2 x 0 Croacia Mexico 3 x 1 Camaroes Brasil 1 x 1 Mexico Croacia 2 x 3 Camaroes Brasil 3 x 1 Camaroes Croacia 2 x 4 Mexico Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Brasil | 7| 2| 6| 2| 4 Croacia | 0| 0| 4| 9| -5 Mexico | 7| 2| 8| 4| 4 Camaroes | 3| 1| 5| 8| -3 Primeiro colocado: Mexico Segundo colocado: Brasil

  29. GRUPO B: Espanha 4 x 3 Holanda Chile 3 x 1 Australia Espanha 3 x 2 Chile Holanda 3 x 1 Australia Espanha 3 x 0 Australia Holanda 2 x 2 Chile Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Espanha | 9| 3| 10| 5| 5 Holanda | 4| 1| 8| 7| 1 Chile | 4| 1| 7| 6| 1 Australia | 0| 0| 2| 9| -7 Primeiro colocado: Espanha Segundo colocado: Holanda

  30. GRUPO C: Colombia 3 x 2 Grecia Costa do Marfim 0 x 4 Japao Colombia 1 x 0 Costa do Marfim Grecia 2 x 0 Japao Colombia 1 x 2 Japao Grecia 2 x 0 Costa do Marfim Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Colombia | 6| 2| 5| 4| 1 Grecia | 6| 2| 6| 3| 3 Costa do Marfim | 0| 0| 0| 7| -7 Japao | 6| 2| 6| 3| 3 Primeiro colocado: Grecia Segundo colocado: Japao

  31. GRUPO D: Uruguai 3 x 1 Costa Rica Inglaterra 0 x 0 Italia Uruguai 1 x 1 Inglaterra Costa Rica 1 x 3 Italia Uruguai 2 x 1 Italia Costa Rica 0 x 3 Inglaterra Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Uruguai | 7| 2| 6| 3| 3 Costa Rica | 0| 0| 2| 9| -7 Inglaterra | 5| 1| 4| 1| 3 Italia | 4| 1| 4| 3| 1 Primeiro colocado: Uruguai Segundo colocado: Inglaterra

  32. GRUPO E: Suica 3 x 2 Equador Franca 3 x 0 Honduras Suica 2 x 2 Franca Equador 2 x 0 Honduras Suica 2 x 1 Honduras Equador 1 x 3 Franca Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Suica | 7| 2| 7| 5| 2 Equador | 3| 1| 5| 6| -1 Franca | 7| 2| 8| 3| 5 Honduras | 0| 0| 1| 7| -6 Primeiro colocado: Franca Segundo colocado: Suica

  33. GRUPO F: Argentina 3 x 0 BosniaHerzegovina Ira 2 x 3 Nigeria Argentina 3 x 3 Ira BosniaHerzegovina 2 x 3 Nigeria Argentina 2 x 1 Nigeria BosniaHerzegovina 2 x 1 Ira Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Argentina | 7| 2| 8| 4| 4 BosniaHerzegovina | 3| 1| 4| 7| -3 Ira | 1| 0| 6| 8| -2 Nigeria | 6| 2| 7| 6| 1 Primeiro colocado: Argentina Segundo colocado: Nigeria

  34. GRUPO G: Alemanha 2 x 2 Portugal Gana 1 x 3 Estados Unidos Alemanha 3 x 1 Gana Portugal 2 x 1 Estados Unidos Alemanha 2 x 1 Estados Unidos Portugal 3 x 1 Gana Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Alemanha | 7| 2| 7| 4| 3 Portugal | 7| 2| 7| 4| 3 Gana | 0| 0| 3| 9| -6 Estados Unidos | 3| 1| 5| 5| 0 Primeiro colocado: Alemanha Segundo colocado: Portugal

  35. GRUPO H: Belgica 2 x 0 Argelia Russia 1 x 1 Coreia do Sul Belgica 3 x 2 Russia Argelia 1 x 1 Coreia do Sul Belgica 2 x 1 Coreia do Sul Argelia 1 x 1 Russia Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Belgica | 9| 3| 7| 3| 4 Argelia | 2| 0| 2| 4| -2 Russia | 2| 0| 4| 5| -1 Coreia do Sul | 2| 0| 3| 4| -1 Primeiro colocado: Belgica Segundo colocado: Russia

  36. Usar subprogramas: • A função main não deve ter comandos que atuem diretamente sobre as struct’s do programa • Subprogramas chamados por ela é que devem fazê-lo

  37. Sugestões para a função main e os subprogramas (podem ou não ser seguidas): /* Processamento das informacoes sobre a Copa */ LerSelecoes (); PrimeiraRodada (); SegundaRodada (); TerceiraRodada (); PrimeiroESegundoDosGrupos (); EscreverGrupos (); Lê os resultados da 1ª rodada de todos os grupos e atualiza a tabela de Resultados e a de Seleções de cada grupo: pontos, vitorias, golspro, golscontra e saldogols Idem para a 2ª rodada Idem para a 3ª rodada Calcula o primeiro e o segundo colocados de todos os grupos e armazena isso nos campos de cada grupo em VetorGrupos Deve ser alterada para escrever todas as informações de VetorGrupos

More Related