A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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

Apresentações semelhantes


Apresentação em tema: "CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VIII Strings, Estruturas e Subprogramas sem Parâmetros."— Transcrição da apresentação:

1 CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas 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: 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 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 Os resultados de todos os jogos de cada grupo devem ser fornecidos pelo operador O referido relatório deve ser escrito num arquivo O referido relatório deve ser escrito num arquivo

4 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 selecao selecao; struct selecao { cadeia nome; int pontos, vitorias, golspro, golscontra, saldogols; }; Sejam as declarações à esquerda nomepontosgolspro tipo selecao golscontrasaldogolsvitorias São as informações sobre uma seleção

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

6 grupo VetorGrupos[9]; nomeVetorSelecoesResultadosprimeirosegundo 0##################### 1 2 3 4 5 6 7 8 VetorGrupos O elemento zero de VetorGrupos não será usado

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

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

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

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++) { for (i = 1, nomegrupo = 'A'; i <= 8; nomegrupo++, i++) { VetorGrupos[i].nome = nomegrupo; VetorGrupos[i].nome = nomegrupo; for (j = 1; j <= 4; j++) { for (j = 1; j <= 4; j++) { fgets(VetorGrupos[i].VetorSelecoes[j].nome,31,FileIn); fgets(VetorGrupos[i].VetorSelecoes[j].nome,31,FileIn); lenght = strlen (VetorGrupos[i].VetorSelecoes[j].nome); lenght = strlen (VetorGrupos[i].VetorSelecoes[j].nome); VetorGrupos[i].VetorSelecoes[j].nome[lenght-1] = '\0'; VetorGrupos[i].VetorSelecoes[j].nome[lenght-1] = '\0'; VetorGrupos[i].VetorSelecoes[j].pontos = 0; VetorGrupos[i].VetorSelecoes[j].pontos = 0; VetorGrupos[i].VetorSelecoes[j].vitorias = 0; VetorGrupos[i].VetorSelecoes[j].vitorias = 0; VetorGrupos[i].VetorSelecoes[j].golspro = 0; VetorGrupos[i].VetorSelecoes[j].golspro = 0; VetorGrupos[i].VetorSelecoes[j].golscontra = 0; VetorGrupos[i].VetorSelecoes[j].golscontra = 0; VetorGrupos[i].VetorSelecoes[j].saldogols = 0; VetorGrupos[i].VetorSelecoes[j].saldogols = 0; }}} Continua no próximo slide Nenhuma seleção tem mais de 20 caracteres O será o último caractere armazenado, antes do ‘\0’; ele deve ser eliminado -----------------------------\n\0------------------ 012lenght-1lenght25

11 /* Funcao EscreverGrupos: escrita das informacoes sobre os grupos */ void EscreverGrupos () { int i, j; for (i = 1; i <= 8; i++) { for (i = 1; i <= 8; i++) { fprintf (FileOut, "\n\nGRUPO %c: ", VetorGrupos[i].nome); fprintf (FileOut, "\n\nGRUPO %c: ", VetorGrupos[i].nome); fprintf (FileOut, "\n\n%-20s|%8s|%8s|%8s|%8s|%8s", 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++) for (j = 1; j <= 4; j++) fprintf (FileOut, "\n%-20s|%8d|%8d|%8d|%8d|%8d", fprintf (FileOut, "\n%-20s|%8d|%8d|%8d|%8d|%8d", VetorGrupos[i].VetorSelecoes[j].nome, VetorGrupos[i].VetorSelecoes[j].nome, VetorGrupos[i].VetorSelecoes[j].pontos, VetorGrupos[i].VetorSelecoes[j].vitorias, VetorGrupos[i].VetorSelecoes[j].pontos, VetorGrupos[i].VetorSelecoes[j].vitorias, VetorGrupos[i].VetorSelecoes[j].golspro, VetorGrupos[i].VetorSelecoes[j].golscontra, VetorGrupos[i].VetorSelecoes[j].golspro, VetorGrupos[i].VetorSelecoes[j].golscontra, VetorGrupos[i].VetorSelecoes[j].saldogols); 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"); FileIn = fopen ("ListaSelecoes.txt", "r"); FileOut = fopen ("RelatorioCopa2014.txt", "w"); FileOut = fopen ("RelatorioCopa2014.txt", "w"); fprintf (FileOut, "COPA DO MUNDO DE 2014"); 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 ("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 ListaSelecoes.txt: Contem o nome das 32 selecoes da Copa\n\n"); printf ("\tArquivo RelatorioCopa2014.txt: Relatorio da Copa\n"); printf ("\tArquivo RelatorioCopa2014.txt: Relatorio da Copa\n"); /* Processamento das informacoes sobre a Copa */ LerSelecoes (); EscreverGrupos (); 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 ListaSelecoes.txt: Contem o nome das 32 selecoes da Copa Arquivo RelatorioCopa2014.txt: Relatorio 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 Bosnia Herzegovina | 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: 1.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 int 0 1 2 3 4 5 00 Resultados 1ª Rodada 2ª Rodada 3ª Rodada

19 Exercício do Lab 8: 2.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 VetorSelecoes de cada estrutura grupo de VetorGrupos nomepontosgolspro tipo selecao golscontrasaldogolsvitorias

20 Exercício do Lab 8: 3.Determinação das seleções primeira e segunda colocada de cada grupo Esse cálculo deve usar o conteúdo do vetor VetorSelecoes de 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: 1.Pontuação 2.Número de vitórias 3.Saldo de gols 4.Gols marcados 5.Ordem alfabética

21 Exercício do Lab 8: 4.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 ListaSelecoes.txt: Contem o nome das 32 selecoes da Copa Arquivo RelatorioCopa2014.txt: Relatorio 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 Bosnia Herzegovina: 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 Bosnia Herzegovina 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 Bosnia Herzegovina 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... Process returned 0 (0x0) execution time : 835.480 s Press any key 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 Bosnia Herzegovina Ira 2 x 3 Nigeria Argentina 3 x 3 Ira Bosnia Herzegovina 2 x 3 Nigeria Argentina 2 x 1 Nigeria Bosnia Herzegovina 2 x 1 Ira Selecao | Pontos|Vitorias| GolsPro| GolsCon|SaldGols --------------------|--------|--------|--------|--------|-------- Argentina | 7| 2| 8| 4| 4 Bosnia Herzegovina | 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 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 (); PrimeiraRodada (); SegundaRodada (); SegundaRodada (); TerceiraRodada (); TerceiraRodada (); PrimeiroESegundoDosGrupos (); PrimeiroESegundoDosGrupos (); EscreverGrupos (); 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


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

Apresentações semelhantes


Anúncios Google