Mapa de algoritimo e logica de programação

Tipo de documento:Código

Área de estudo:Tecnologia da informação

Documento 1

h> //exit,system // Constantes #define MAX 20 #define CLEAR_CMD "cls" #define PAUSE_CMD "pause" struct Aluno { char nome[128]; char email[128]; double peso; double altura; }; // Maximo numero de alunos // Comando de limpeza de tela // Pausa para exibicao // // // // // Dados do aluno Nome Email Peso em kg Altura em m typedef struct Aluno Aluno; // Variaveis globais Aluno alunos[MAX]; int numero=0; // Lista de alunos // Numero de alunos // Prototipacao // Funcao para o calculo do IMC double IMC(double peso, double altura); // Desenha o menu na tela void menu(); // Limpa tela void limpa_tela(); // Cadastra aluno void cadastra_aluno(); // Lista alunos (sem pausa se configurado para isso) void lista_alunos(int pausar); // Apaga aluno void apaga_aluno(); // Lista IMC void lista_IMC(); // Imprime condicao IMC void condicao_imc(double imc); int main() { menu(); return 0; } // Menu e interacao com o usuario double IMC(double peso, double altura) { return peso/altura/altura; } // IMC void menu() { int op=1; // Variavel para escolha da opcao do{ system(CLEAR_CMD); // Limpa a tela if(op<0 || op>4) // Se foi digitada opcao invalida printf("\n\n\tOPCAO INVALIDA!!\n\n"); // Exibe opcao invalida printf("\n\t0.

Sair\n"); // Sair printf("\t1. Cadastrar Aluno\n"); // printf("\t2. Listar Alunos\n"); // printf("\t3. Apagar Aluno\n"); // printf("\t4. lf m\n\n",alunos[i]. altura); } if(pausar) // Se for para pausar system(PAUSE_CMD); // Pausa } // // // // // Numero do Imprime o Imprime o Imprime o Imprime a aluno nome email peso altura void apaga_aluno() { int op=1,i; lista_alunos(0); // Lista os alunos para o usuario escolher do{ if(op<1 || op>numero) // Se a opcao tiver fora do intervalo esperado printf("\n\n\tOPCAO INVALIDA!!\n\n"); printf("Digite o numero do aluno a ser removido: "); scanf(" %d",&op); // Le a opcao digitada } while(op<1 || op>numero); // Enquanto opcao invalida for(i=op; i<numero; i++) // Para cada aluno que vier depois do aluno no cadastro alunos[i-1] = alunos[i]; numero = numero-1; // Desloca um para tras // Diminui o numero de alunos em 1 } void lista_IMC() { int i; // for(i=0; i<numero; i++) // { double imc = IMC(alunos[i].

peso,alunos[i]. altura); printf("ALUNO %d\n",i+1); // printf("Nome: %s\n",alunos[i]. nome); // printf("IMC: %. fim-fila. atual+1; // Numero de pessoas na fila if(n>0) // Se houver pessoas na fila { printf("\nA fila contem %d pessoas com as seguinte senhas em ordem de chegada:",n); for(i=fila. atual; i<=fila. fim; i++) // Para cada pessoa na fila printf(" %d",i); // Imprime a senha } else // Senao printf("\nA fila esta vazia no momento. n");// Imprime informacao de fila vazia printf("\n"); } // Pula linha void sair() { int n = fila. h> //printf,scanf #include <stdlib. h> //exit,system #include <string. h> //strcpy,strcmp //Constantes #define tamanho 100 #define MAX_DADOS 10 #define E 0 #define D 1 #define R -1 #define CLEAR_CMD "cls" #define PAUSE_CMD "pause" #define MAIS "+" #define MENOS "-" #define VEZES "*" // // // // // // // // // // Tamanho maximo disponivel para a arvore Maximo de caracteres para os dados dos nos Codigo identificador de filho esquerdo Codigo identificador de filho direito Codigo identificador de no raiz Comando para limpeza de tela Comando para pausar exibicao Sinal de MAIS Sinal de MENOS Sinal de VEZES //Estrutura struct str_no { // Estrutura do no char dado[MAX_DADOS]; // Dado do no (permite numeros maiores que 1 digito) int int int int esquerda; direita; pai; prof; // // // // Filho da esquerda Filho da direita Pai Profundidade da arvore }; //Variáveis globais struct str_no arvore[tamanho]; int indice=0; // Arvore // posicao atual na arvore //Prototipaç~ ao // Insere no na arvore void insere_no(int pai, char dado[MAX_DADOS], int lado); // Calcula o resultado da arvore int resultado(); // Cria a arvore exemplo do enunciado void exemplo(); // Imprime a arvore em formato de hierarquia void imprimir(); // Exibe o menu e le entradas do usuario void menu(); // Procura indice do ultimo no com valor dado int procura(char dado[MAX_DADOS]); //Funç~ ao principal int main() { menu(); return 0; } // Menu e interacao com usuario void insere_no(int pai, char dado[MAX_DADOS], int lado) { if(lado==E) // Se filho da esquerda { arvore[pai].

esquerda = indice; // Adiciona o indice ao filho da esquerda do pai arvore[indice]. prof = arvore[pai]. Sair\n"); printf("\t1. Inserir no\n"); printf("\t2. Calcular resultado\n"); printf("\t3. Criar arvore do enunciado\n"); printf("\n\t\tDigite sua escolha: "); scanf(" %d",&op); // Le a opcao desejada // Verifica a opcao escolhida if(op==0) return; // Sai do programa else if(op==1) { int temp,lado; // Variaveis locais char pai[MAX_DADOS],no[MAX_DADOS]; printf("\nDigite o valor do PAI: "); scanf(" %s",pai); // Le o valor do pai printf("Digite o valor do NO: "); scanf(" %s",no); // Le o valor do no printf("Digite o lado da subarvore (esquerda=%d/direita=%d/raiz=%d): ", E,D,R); scanf(" %d",&lado); // Le o lado a ser inserido temp = procura(pai); // Procura futuro pai insere_no(temp,no,lado); // Insere no na arvore } else if(op==2) { printf("\n\n\tRESULTADO: %d\n",resultado(0)); // Calcula o resultado da arvore system(PAUSE_CMD); // Pausa para exibicao do resultado } else if(op==3) exemplo(); // Cria a arvore dada no enunciado } } int procura(char dado[MAX_DADOS]) { int i,r=-1; if(indice==0) return 0; for(i = 0; i<indice; i++) if(!strcmp(arvore[i].

dado,dado)) r = i; return r; } void imprimir(int ind) { int i; if(ind==-1) return; if(indice==0) return; for(i=0; i<=arvore[ind].

105 R$ para obter acesso e baixar trabalho pronto

Apenas no StudyBank

Modelo original

Para download