Archive 2018

Jogo da Velha

algoritmo "JogoDaVelha"
// Função :
// Autor :
// Data : 22/10/2018
// Seção de Declarações 
var
 m : vetor [0..2,0..2] de caractere
 jogador: caractere
 i,j,l,c,x,y: inteiro
 
 funcao testaVencedor(p: caractere) : inteiro
 inicio
 
   se (m[0,0]= p) e ( m[0,1]= p) e  ( m[0,2]= p) entao
       retorne 9
   senao
        retorne 0
   fimse
 
 fimfuncao

procedimento mostrar()
inicio

  para i de 0 ate 2 passo 1 faca

        para j de 0 ate 2 passo 1 faca
              escreva(m[i,j])
        fimpara
        escreval()
    fimpara
fimprocedimento

procedimento jogar()
inicio
      escreval()
      escreval("Jogador: [ ",jogador, " ]")

      escreva("Digite a linha:")
      leia(l)
      escreva("Digite a coluna:")
      leia(c)

      enquanto m[l,c] <> " " faca
               escreval("Escolha outra posição:")
               escreva("Digite a linha:")
               leia(l)
               escreva("Digite a coluna:")
               leia(c)
      fimenquanto
      
      m[l,c]:= jogador
fimprocedimento

inicio

jogador:="X"
y:= 0 // não encontrou
// Seção de Comandos 

para i de 0 ate 2 passo 1 faca
   para j de 0 ate 2 passo 1 faca
     m[i,j]:= " "
   fimpara
fimpara

enquanto (y<5) FACA
  limpatela
  jogar()
  y := y + testaVencedor(jogador)
  mostrar()


  //mudar o jogador
  se jogador="X" entao
      jogador:="0"
  senao
       jogador:="X"
  fimse

y:=y+1
fimenquanto

fimalgoritmo

Função soma() & potencia()

algoritmo "função"
// Função :
// Autor :
// Data : 01/11/2018
// Seção de Declarações 
 // reservada   nome ( lista de variáveis : tipo): tipo de retorno
funcao soma(x, y :inteiro):inteiro
inicio
   retorne x+y

fimfuncao

funcao potencia(x, y:inteiro):inteiro
var  pot, i:inteiro
inicio
   pot:=1;
   para i de 1 ate y passo 1 faca
       pot:= pot*x
   fimpara
   retorne pot
fimfuncao
var
   op:caracter
   v1,v2: inteiro
 inicio
 
    // escreval(soma(2,3))
     escreval(potencia(2,5))
 
 
 
 
// Seção de Comandos 
  escreval( "Calculadora")
  escreva("Digite a Operação [*] [/] [+] [-] [^] [#]")
  leia(op)
  se op='#' entao
     escreva("Digite o Valor:")
     leia(valor)
     escreva(quadrado(valor))

  
        // escreva( " "soma(2,4)  )

fimalgoritmo

Ordenação de Vetor

algoritmo "semnome"
// Função :
// Autor :
// Data : 10/10/2018
// Seção de Declarações 
var
         notas: vetor [1..10] de inteiro
         i,j,aux: inteiro
inicio
// Seção de Comandos 
        // INSERIR VALORES NO VETOR
        escreval("Digite as notas de  ")
        para  i de 1 ate 4 passo 1 faca
              escreva("Digite a nota do aluno ",i," : ")
              leia(notas[i])
        fimpara
        
        //ORDENAÇÃO
        para i de 1 ate 3 passo 1 faca
            para j de i+1 ate 4 passo 1 faca
                 se (notas[i] < notas[j]) entao
                    aux:= notas[i]
                    notas[i]:=notas[j]
                    notas[j]:=aux
                 fimse
            
            
            fimpara
        fimpara
        

          // APRESENTAR VALORES NO VETOR
        para  i de 1 ate 4 passo 1 faca
               escreval("Valor na posição: ",i," Valor:",notas[i])

        fimpara

fimalgoritmo

Quantos Pares

algoritmo "Quantos são Pares"
// Função :
// Autor :
// Data : 11/10/2018
// Seção de Declarações 
var
 num: vetor[1..10] de inteiro
 i,par:inteiro
 
inicio

// Seção de Comandos
  par:=0
   // BLOCO COM LAÇO PARA INSERIR VALORES
  para  i de 1 ate 5 passo 1 faca
        escreva("Digite um Número: ")
        leia(num[i])
  fimpara

  // BLOCO COM LAÇO PARA APRESENTAR VALORES
  para  i de 1 ate 5 passo 1 faca
        se (num[i]%2=0) entao
           par:=par+1
        fimse
  fimpara

  escreva("Você digitou ",par, " Números Pares")
  

fimalgoritmo

Exercício Vetor

algoritmo "semnome"
// Função :
// Autor :
// Data : 10/10/2018
// Seção de Declarações 
var

         notas: vetor [1..9] de real
         i: inteiro
inicio
// Seção de Comandos 
        // INSERIR VALORES NO VETOR
        escreval("Digite as notas de LPA  ")
        para  i de 1 ate 3 passo 1 faca
              escreva("Digite a nota do aluno",i,"º")
              leia(notas[i])
        fimpara
        
        escreval("Digite as notas de LPE ")
        para  i de 4 ate 6 passo 1 faca
              escreva("Digite a nota do aluno",i-3,"º")
              leia(notas[i])
        fimpara
        
        
        escreval("Digite as notas de CD ")
        para  i de 7 ate 9 passo 1 faca
              escreva("Digite a nota do aluno",i-6,"º")
              leia(notas[i])
        fimpara


          // APRESENTAR VALORES NO VETOR
        para  i de 1 ate 9 passo 1 faca

               escreval("Notas:",notas[i])

        fimpara

fimalgoritmo

Relatório de Estágio

ESTÁGIO SUPERVISIONADO

 

Relatório de Estágio

 

O relatório de estágio precisa seguir os padrões do manual de normalização e  deverá conter os itens:

 

 

  • Comprovantes devidamente carimbados, assinados e em papel timbrado.
  • A declaração deverá ser entregue no prazo conforme informado pela coordenação de curso.
  • O aluno deverá entregar a declaração antes da conclusão e termino do relatório de Estágio.

 

Total de horas mínimo exigido: 420horas

 

 

 

.

Código Analisador Lexico

#include
#include 
#include 
#include 
#include 
struct reg_hash{
	char pal[15];
	int link;
	}matriz[124];
	
struct reg_tabela{
		char simbolo[15];
		int ant,alt,suc,cod;
	}tab[8];
	//olhar esta linha
struct	 reg_lexico{
		char p1[16];
		char p2[16];
		char p3[20];
	};
	typedef struct reg_lexico lex;
	lex saida;
	void lexico(char *);
	int hash(char *);
	void regra (void);
	void sintatico(char*);
	FILE *h,*f,*a;
	int main()
	{
	char linha[256];
	regra();
	//clrscr();
	if((h=fopen("arg_hash.dat","r"))== NULL){
		printf("\nArquivo nao pode ser aberto - arq_hash")
		//return 0;
	}
	else fread (&matriz,sizeof(matriz[0]),124,h);
	if((f= fopen ("programa.pas","r")) == NULL){
		printf("\nArquivo nao pode ser aberto - programa ");
		return 0;
	}
	if((a = fopen("arq_lex.dat,"w""))== NULL){
		printf("\nArquivo nao pode ser aberto - arq_lex");
		return 0;
	}
	while (fgets(linha, 256,f) != NULL){
	
		sintatico(linha);
		fclose(f);
		fclose(h);
		fclose(a);
		getch();
	}
	// Analisador Sintatico
	void sintatico (char *linha){
		int i, compara, estado;
		compara = estado = 0;
		lexico (linha);
		fclose(a);
		a = fopen("arq_lex.dat","r");
		while (fscan(a,"%s%s%s", saida.p1, saida.p2,&saida.p3) !=EOF ){
			if (estado == 0){
				compara = stcmp (tab[0].simbolo,saida.p1);
				if (compara != 0)
					printf("\nerro[1] - program");
				estado = tab [0].suc;
				}
	else if (estado == 1) {
		compara = strcmp (tab[1].simbolo,saida.pl);
		if (compara != 0)
			printf("\nerro[2] - identificador ");
		estado = tab[1].suc;
	}
	else if (estado == 2){
		compara = strcmp(tab[1].simbolo,saida.pl);
		if(compara != 0)
			estado = tab[2].alt;
	}
		else estado = tab[2].suc;
		}
		else if (estado == 3){
			compara = strc (tab[3].simbolo,saida.p1);
			if (compara !=0){
				printf("\nerro[3] - identificador ou , ou)");
				estado = tab[5].suc;
			}
			estado = tab[3].suc;
		}
		else if (estado == 4)
			if (tab[4].simbolo ==")")
				estado = tab[5].suc;
			else
				estado = tab[4].alt;
		else if (estado == 6){
			compara = strcmp (tab[6].simbolo,saida.pl);
			if(compara != 0)
				printf("\nerro[4] - ;");
		}
	}
	return 1;
}
//analizador lexico
void lexico(char *linha)
{
	char acumula[256],p1[16],p3[20];
	int j,estado = 0,valor,i = 0;
	acumula[0]= '\0';
	while(1){
		j=0;
		switch(estado){
			case 0 :
				while((linha[i]==' ')||(linha[i]== '\t'))
				i++;
				if (isalpha(linha[i])) estado =1; //se for letra
				else if (isdigit(linha[i]))estado=2; //se for digito
					else if(linha[i] == '/') estado = 4;
						else if (linha[i]== 39) estado =7; //se aspas
							else if (linha[i]== '$') estado =9;
								else if (linha[i] == '\n'){fclose(a); return;
								}
		}
	}
}
								else estado = 3;
			break;
		case 1 :
			while((isalnum(linha[i]))
					acumula[j++] = linha [i++];
			acumula[j] = '\0';
			valor = hash(acumula);
			if (valor == 0)
					strcpy(p1,acumula);
			else
					strcpy(p1, "IDEN");
			strcpy(p2,acumula);
			strcpy(p3,"---");
			estado = 11;

//Analisador Lexico
void lexico (char*linha) {
char acumula [256],p1[16],p2[16],p3[20];
int j,estado=0,valor,i=0;
acumula[0]='\0';
while(1){
j=0
switch(estado){
case 0 :
		while ((linha[i]==null) || (linha[i]=='\t')) //coloquei null
			i++;
			if (isalpha(linha[i])) estado=1; //se for letra
			else if (isdigit (linha[i])) estado=2; // se for figito
			else if (linha[i]=='/') estado=4;
			else if (linha[i]==39) estado=7; //se aspas
			else if (linha[i]=='$') estado=9;
			else if (linha[i]=='\n') {f close (a);
			return n;} 
}
else estado=3;
break;
case 1:
while ((isalnum(linha[i]))!=0)
acumula[j++] = linha[i++];
acumula[j]='\0';
valor=hash(acumula);
if (valor==0)
strcpy(p1,acumula);
else
strcpy(p1,"IDEM");
strcpy(p2,acumula);
strcpy(p3,"---");
estado=11;
break;
}
}
}




//funcso hash - teste de palavra reservada

int hash(char *acumula){
	int valor, tamanho, soma = 0,1 = 0, volta;
	tamanho = strlen(acumula);
	while(l < tamanho){
		if ((acumula[1] >= 97) && (acumula[1] <= 122)){
			soma += acumula[1] - 32;
		else soma += acumula[1];
		l++
		}
	}
	if (soma < 113) soma = soma * 3;
	valor = soma % 113;
	if (valor < 125){
		while(1){
			volta = strcmp(matriz[valor].pal, acumula);
			if(volta == 0){
				return(volta);
			else
				if (matriz[valor].link == 0){
					return(volta);
					else
						valor = matriz[valor].link;
				}
			}
		}
	}
	else volta = 1;
	return(volta);
}

// regra de sintaxe - cabecalho
void regra(){
	int i;
	
	for(i = 0; i < 8; i++){
		tab[i].simbolo[0] = '\0';
		tab[i].ant = '\0';
		tab[i].alt = '\0';
		tab[i].suc = '\0';
		tab[i].cod = '\0';
	}
	
	strcpy(tab[0].simbolo,"programa");
	tab[i].ant = -1;
	tab[i].alt = -1;
	tab[i].suc = 1;
	tab[i].cod = 1;
	strcpy(tab[1].simbolo,"IDEN");
	tab[i].ant = -1;
	tab[i].alt = -1;
	tab[i].suc = 2;
	tab[i].cod = 2;
	strcpy(tab[2].simbolo,"(");
	tab[i].ant = -1;
	tab[i].alt = 6;
	tab[i].suc = 3;
	tab[i].cod = 3;
	strcpy(tab[3].simbolo,"IDEN");
	tab[i].ant = -1;
	tab[i].alt = -1;
	tab[i].suc = 4;
	tab[i].cod = 4;
	strcpy(tab[3].simbolo,",");
	tab[i].ant = -1;
	tab[i].alt = 3;
	tab[i].suc = 5;
	tab[i].cod = 5;
	strcpy(tab[4].simbolo,")");
	tab[i].ant = -1;
	tab[i].alt = -1;
	tab[i].suc = 6;
	tab[i].cod = 6;
	strcpy(tab[4].simbolo,";");
	tab[i].ant = -1;
	tab[i].alt = -1;
	tab[i].suc = -1;
	tab[i].cod = -1;
}



---------------------------------------

case 6 :
	while(linha[i++] == '*');
	if((linha[i] != '/')&&(linha[i] != '*')) estado = 5;
	else if (linha[i] == '/') estado = 0;
	break;

case 7 :
	i++;
	while(linha[i] != 39)
		acumula[j++] linha[i++];
	acumula[j]	 = '\0';
	estado = 8;	
	break;
	
case 8 :
	i++;
	if(linha[i] == 39) estado = 7;
	else{
		strcpy(p1, "msg");
		strcpy(p2, acumula);
		strcpy(p3, "---");
		i--;
		estado = 11;
	}
	
case 9 :
	i++;
	while((linha[i] != null) && (linha[i] == 44))	//coloquei null no lugar de ''
	{
		if(linha[i] == 44 ) estado = 10;
		acumula[j++] = linha[i++];
		acumula[j] = '\0'];
	}
	
case 10 :
	while(linha[i++] == '$')
	break;
	

DISCIPLINAS OPTATIVAS 

NP1- o aluno deverá responder no sistema os exercícios da disciplina, até 31/10/2018, sendo limitado a três o número de tentativas de envio de cada exercício. A composição da nota dependerá da quantidade de envios realizada pelo aluno:

1º envio: a nota será gerada a partir da quantidade de acertos dos exercícios enviados pelo aluno.

2º envio: será considerada a média aritmética das notas dos 1º e 2º envios.

3º envio: será considerada a média aritmética das notas dos 1º, 2º e 3º envios.


NP2 – o aluno deverá agendar as provas no sistema e realizá-las presencialmente no Laboratório de Informática no período de 14/11/2018 a 24/11/2018.


Prova Substitutiva – o aluno deverá agendar as  provas no sistema  e realizá-las presencialmente no Laboratório de Informática no período de  26/11/2018 a 04/12/2018.


Exame – Cursos Tradicionais – o aluno deverá agendar as provas no sistema  e realizá-las presencialmente no Laboratório de Informática no período de 06/12/2018 a 14/12/2018.



 

DEPENDÊNCIA DE DISCIPLINAS  EAD (AVA)

NP1- o aluno deverá responder no sistema os exercícios da disciplina, até 31/10/2018, sendo limitado a três o número de tentativas de envio de cada exercício. A composição da nota dependerá da quantidade de envios realizada pelo aluno:
1º envio: a nota será gerada a partir da quantidade de acertos dos exercícios enviados pelo aluno.

2º envio: será considerada a média aritmética das notas dos 1º e 2º envios.

3º envio: será considerada a média aritmética das notas dos 1º, 2º e 3º envios.


NP2 – o aluno deverá agendar as provas no sistema e realizá-las presencialmente no Laboratório de Informática no período de 14/11/2018 a 24/11/2018.


Prova Substitutiva – o aluno deverá agendar as  provas no sistema  e realizá-las presencialmente no Laboratório de Informática no período de  26/11/2018 a 04/12/2018.


Exame – Cursos Tradicionais – o aluno deverá agendar as provas no sistema  e realizá-las presencialmente no Laboratório de Informática no período de 06/12/2018 a 14/12/2018.


 

 


 

 

Impressão dos Certificados das Palestras

Após a impressão,  o aluno deverá protocolar o  certificado na coordenação de curso para que este documento tenha validade.