Mudanças entre as edições de "PRG29002 - Programação I - Eng.Telecom 2015-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 72: Linha 72:
  
 
a) Inserir uma função após o tiro para fornecer uma dica do número de navios que se encontra nas casas imediatamente vizinhas ao tiro realizado.
 
a) Inserir uma função após o tiro para fornecer uma dica do número de navios que se encontra nas casas imediatamente vizinhas ao tiro realizado.
 +
{{collapse top|solução 1 - Testar}}
 +
<syntaxhighlight lang=c>
 +
int TestarVizinhanca(int x, int y)
 +
{
 +
int cont=0;
 +
 +
if(x>0) {
 +
    if (y>0) {
 +
if (ZonaGuerra[x-1][y-1]>0 && ZonaGuerra[x-1][y-1]<4)
 +
    cont++;
 +
    }
 +
if (ZonaGuerra[x-1][y]>0 && ZonaGuerra[x-1][y]<4)
 +
    cont++;
 +
    if(y<9) {
 +
if (ZonaGuerra[x-1][y+1]>0 && ZonaGuerra[x-1][y+1]<4)
 +
    cont++;
 +
    } 
 +
}
 +
 +
if (y>0) { 
 +
if (ZonaGuerra[x][y-1]>0 && ZonaGuerra[x][y-1]<4)
 +
    cont++;
 +
}
 +
if(y<9) { 
 +
if (ZonaGuerra[x][y+1]>0 && ZonaGuerra[x][y+1]<4)
 +
    cont++;
 +
}
 +
 +
if (x<9) {
 +
    if (y>0) {
 +
if (ZonaGuerra[x+1][y-1]>0 && ZonaGuerra[x+1][y-1]<4)
 +
    cont++;
 +
    }
 +
if (ZonaGuerra[x+1][y]>0 && ZonaGuerra[x+1][y]<4)
 +
    cont++;
 +
    if(y<9) {   
 +
if (ZonaGuerra[x+1][y+1]>0 && ZonaGuerra[x+1][y+1]<4)
 +
    cont++;
 +
    }     
 +
 +
}
 +
</syntaxhighlight>
 +
{{collapse bottom}}
 +
 +
{{collapse top|solução 2 - Testar}}
 +
<syntaxhighlight lang=c>
 +
int TestarVizinhanca(int x, int y)
 +
{
 +
  int i,j;
 +
 
 +
  for (i=x-1;i<x+2;i++) {
 +
    for (j=y-1;j<y+2;j++) {
 +
          if (!(i==-1 || i==10 || j==-1 || j==10 || (i==x && j==y)))
 +
          if (ZonaDeGuerra[i][j]>0 && ZonaDeGuerra[i][j]<4)
 +
              Cont++
 +
      }
 +
  }
 +
}
 +
</syntaxhighlight>
 +
{{collapse bottom}}
  
 
b) Inserir uma funcionalidade para armazenar nomes e pontuação de usuários. Ao final de cada programa mostrar a tabela de usuários com pontuação. Dica: criar 2 tabelas: uma de strings e outra de inteiros. A primeira para armazenar os nomes de usuários e a segunda para armazenar a pontuação.
 
b) Inserir uma funcionalidade para armazenar nomes e pontuação de usuários. Ao final de cada programa mostrar a tabela de usuários com pontuação. Dica: criar 2 tabelas: uma de strings e outra de inteiros. A primeira para armazenar os nomes de usuários e a segunda para armazenar a pontuação.
 
{{collapse bottom}}
 
{{collapse bottom}}

Edição das 09h49min de 12 de dezembro de 2015

Plano de Ensino

Plano de Ensino da Disciplina

Aulas

AULA 1 - Dia 5/10/2015 - Aula Inaugural
AULA 2 - Dia 9/10/2015 - Lógica de Programação: Expressões - Estruturas de Decisão
AULA 3 - Dia 14/10/15 - Lógica de Programação: Estruturas de Repetição/Subprogramas
AULA 4 - Dia 17/10/15 -Introdução a Programação C
AULA 5 - Dia 19/10/15 -Estruturas de Decisão
AULA 6 - Programação 1 - Engenharia
Dia 21/10/15 -Exercícios
AULA 7- Programação 1 - Engenharia
Dia 26/10/15 -Exercícios
AULA 8- Dia 20/8/14 -Estruturas de Repetição no C
AULA 9- Dia 04/10/2015
AULA 10 - Dia 9/11/2015 -Funções no C
AULA 11- Dia 11/11/2015
AULA 12 - Dia 16/11/2015 - Vetores no C
AULA 13 - Dia 18/11/2015 - Avaliação 1
PRG29002-2015-2-Aval1A
PRG29002-2015-2-Aval1B
AULA 15 - Dia 23/11/15 - Vetores no C
AULA 14 - Dia 25/11/15 - Correção da Avaliação I]
AULA 16 - Dia 30/11/15 - Vetores no C
AULA 17 - Dia 2/12/2015 - Arranjos Multidimensionais
AULA 18 - Dia 7/12/2015 - Exercícios
AULA 19 - Dia 9/12/2015 - Exercícios - Continuação Batalha Naval


AULA 20 - Dia 12/12/2015 - Exercícios - Continuação Batalha Naval

Adendos:

a) Inserir uma função após o tiro para fornecer uma dica do número de navios que se encontra nas casas imediatamente vizinhas ao tiro realizado.

solução 1 - Testar
int TestarVizinhanca(int x, int y)
{
 int cont=0;
 
 if(x>0) {
    if (y>0) { 
 		if (ZonaGuerra[x-1][y-1]>0 && ZonaGuerra[x-1][y-1]<4)
    		cont++;
    }
 	if (ZonaGuerra[x-1][y]>0 && ZonaGuerra[x-1][y]<4)
    	cont++;
    if(y<9) {
 		if (ZonaGuerra[x-1][y+1]>0 && ZonaGuerra[x-1][y+1]<4)
    		cont++;
    }  
 }
 
 if (y>0) {   
 	if (ZonaGuerra[x][y-1]>0 && ZonaGuerra[x][y-1]<4)
    	cont++;
 }
 if(y<9) {   
 	if (ZonaGuerra[x][y+1]>0 && ZonaGuerra[x][y+1]<4)
    	cont++;
 }
 
 if (x<9) {
    if (y>0) {
 		if (ZonaGuerra[x+1][y-1]>0 && ZonaGuerra[x+1][y-1]<4)
    		cont++;
    }
 	if (ZonaGuerra[x+1][y]>0 && ZonaGuerra[x+1][y]<4)
    	cont++;
    if(y<9) {     	
 		if (ZonaGuerra[x+1][y+1]>0 && ZonaGuerra[x+1][y+1]<4)
    		cont++;
    }      
 }   
}
solução 2 - Testar
int TestarVizinhanca(int x, int y)
{
  int i,j;
  
  for (i=x-1;i<x+2;i++) {
     for (j=y-1;j<y+2;j++) {
           if (!(i==-1 || i==10 || j==-1 || j==10 || (i==x && j==y)))
           		if (ZonaDeGuerra[i][j]>0 && ZonaDeGuerra[i][j]<4)
               		Cont++
      }
  }
}

b) Inserir uma funcionalidade para armazenar nomes e pontuação de usuários. Ao final de cada programa mostrar a tabela de usuários com pontuação. Dica: criar 2 tabelas: uma de strings e outra de inteiros. A primeira para armazenar os nomes de usuários e a segunda para armazenar a pontuação.