Archive October 2018

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.