Ir para conteúdo
Fórum Script Brasil
  • 0

Passando de Portugol para C


hchawk

Pergunta

Estou começando o curso de engenharia, e o como estou no começo, o professor usa muito Portugol. Coisa que honestamente, odeio, simplesmente não entendo. Prefiro C.

E ele pediu para passarmos isso para C, sendo que eu nunca vi isso.

Achei uma apostila de C que está me ajudando, mas não sei exatamente o que fazer, porque eu não estou entendendo o cabeçalho.

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

Algoritmo P1 (MENU DE OPÇÕES)

TIPO     ED1=REGISTRO
        CODE: INTEIRO;
        NOME: CARACTERE;
        UNIDADE: CARACTERE; //SE É EM ML, CARTELA, COMP., CX,
        QUANT: INTEIRO;
        PREÇO: REAL;
    FIMREGISTRO;    
    ED2=VETOR[1..5000] DE ED1;                                         <<<<   Não sei porque desse ED2=VETOR e o que tem a ver com o ED1
                                                                                             <<<<
VAR    REMEDIO:ED2;                                                               <<<<   Não entendi nem o porque desse ED2, não sei sua utilidade ou uso
    Q:INTEIRO; //REPRESENTA A QUANTIDADE                      <<<<   Aqui eu já estou muito perdido para entender isso
    OP: INTEIRO;                                                                 <<<<   Aqui eu já estou muito perdido para entender isso

*****PROCEDIMENTOS E FUNÇÕES*****

INICIO
    Q<-0;
    REPITA
        ESCREVA("ESCOLHA (1-INCLUIR, 2-EXCLUIR, 3-ALTERAR, 4-CONSULTAR, 5-SAIR):");
        LEIA(OP);
        ESCOLHA(OP) //É O SWICTH (C++)
            CASO 1: INCLUIR(REMEDIO, Q); //PROCEDIMENTO
            CASO 2: EXCLUIR(REMEDIO, Q);
            CASO 3: ALTERAR(REMEDIO, Q);
            CASO 4: CONSULTAR(REMEDIO, Q);
            CASO 5: ESCREVA ("FIM DO PROGRAMA!");
            CASO CONTRARIO: ESCREVA ("OPÇÃO INVALIDA!"); //DEFAULT EM C++

        FIMESCOLHA;
    ATÉ OP=5;
FIM
------------------------------------------------------------------------------------------------- Em C, eu só fiz até agora, (sim, eu sei, ridículo e quase nada, uahuahahuah) ---------------------------
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct registro[5000]{
    int code;
    char nome[50];
    char unidade[50];
    int quant;
    float preço;
}remedio;

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

Só que além de não saber se está certo, não sei mais o que fazer.

Talvez se vocês conseguirem me explicar o que ele quer, eu consiga fazer.

Grato.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

#include <stdio.h>
#include <stdlib.h>

#define TAMANHO 5 // e qtd de remedio que deseja inserir no struct

typedef struct registro{
    int code;
    char nome[50];
    char unidade[50];
    int quant;
    float preço;
}remedeio;

remedeio remedio[TAMANHO]; //Não sei porque desse ED2=VETOR e o que tem a ver com o ED1
                           //declara seu struct como um vetor

int main(int argc, char *argv[]){
    int opcao1, opcao2, i, codigo;
    
    //Remedios com o codigo -1 não existem
    for (i = 0; i < TAMANHO; i++)
        remedio[i].code = -1; 
    
    do{
        //Opcoes para o programa
        system("cls");
        printf("1 -> Inserir\n");
        printf("2 -> Excluir\n");
        printf("3 -> Alterar\n");
        printf("4 -> Consultar\n");
        printf("5 -> Sair\n\n");
        
        printf("Escolha uma da opcao: ");
        scanf("%d", &opcao1);
        
        
        switch (opcao1){
               case 1: // Inseri
                    printf("Inserir\n");
                    for (i = 0; i < TAMANHO; i++){
                        if (remedio[i].code == -1){
                           printf("\n----Remedio------\n");
                           printf("Code: %d\n", i);
                           remedio[i].code = i;
                           printf("Nome: ");
                           scanf("%s", &remedio[i].nome);
                           printf("Unidade: ");
                           scanf("%s", &remedio[i].unidade);
                           printf("Qtd: ");
                           scanf("%d", &remedio[i].quant);
                           printf("preço: ");
                           scanf("%f", &remedio[i].preço);
                        break;
                        }
                    } 
                    system("Pause");
                    break;
               case 2: // Exclui
                    printf("Excluir\n");
                    printf("Excluir o codigo: ");
                    scanf("%d", &codigo);
                    remedio[codigo].code = -1; // o codigo -1 significa que o remedio não existe
                    system("Pause");
                    break;
               case 3: // Altera
                    printf("Alterar\n");
                    printf("Digite o codigo para alterar: ");
                    scanf("%d", &codigo);
                    
                    printf("Code: %d\n", codigo);
                    
                    printf("Nome: %s\n", remedio[codigo].nome);
                    printf("Alterar o nome(1= Sim - 2= não): ");
                    scanf("%d", &i);
                    if (i == 1){
                       printf("Digite o novo nome: ");
                       scanf("%s", &remedio[codigo].nome);
                       }
                       
                    printf("Unidade: %s\n", remedio[codigo].unidade);
                    printf("Alterar a unidade(1= Sim - 2= não): ");
                    scanf("%d", &i);
                    if (i == 1){
                       printf("Digite a nova unidade: ");
                       scanf("%s", &remedio[codigo].unidade);
                       }
                     
                    printf("Qtd: %d\n", remedio[codigo].quant);
                    printf("Alterar o qtd(1= Sim - 2= não): ");
                    scanf("%d", &i);
                    if (i == 1){
                       printf("Digite a nova qtd: ");
                       scanf("%d", &remedio[codigo].quant);
                       }
                       
                    printf("preço: %.2f\n", remedio[codigo].preço);
                    printf("Alterar o preço(1= Sim - 2= não): ");
                    scanf("%d", &i);
                    if (i == 1){
                       printf("Digite o novo preço: ");
                       scanf("%f", &remedio[codigo].preço);
                       }

                    system("Pause");
                    break;
               case 4: // Consulta
                    printf("Consultar\n");
                    printf("1 -> Consultar toda a Lista de Remedio:\n");
                    printf("2 -> Consultar por codigo:\n");
                    printf("Digite a opcao: ");
                    scanf("%d", &opcao2);
                    
                    switch (opcao2){
                           case 1:
                                for (i = 0; i < TAMANHO; i++){
                                    if (remedio[i].code != -1){
                                                   printf("\n---- Remedio - Cod %d -----\n", remedio[i].code);
                                                   printf("Nome: %s\n", remedio[i].nome);
                                                   printf("Unidade: %s\n", remedio[i].unidade);
                                                   printf("Qtd: %d\n", remedio[i].quant);
                                                   printf("preço: %.2f\n", remedio[i].preço);
                                    }       
                                }
                                break;
                           case 2:
                                printf("Digite o codigo para consultar: ");
                                scanf("%d", &codigo);
                                
                                printf("\n---- Remedio - Cod %d -----\n", remedio[codigo].code);
                                printf("Nome: %s\n", remedio[codigo].nome);
                                printf("Unidade: %s\n", remedio[codigo].unidade);
                                printf("Qtd: %d\n", remedio[codigo].quant);
                                printf("preço: %.2f\n", remedio[codigo].preço);
                                break;
                    }
                    
                    system("Pause");
                    break;
               case 5: // fecha
                    printf("Fecha\n\n");
                    break;
               default:
                       printf("Opcao Invalida\n\n");
                       system("Pause");
        }
        // enquanto a opcao for diferente de 5 o programa e executado
    }while(opcao1 != 5);

  system("PAUSE");    
  return 0;
}

Espere que ajude... :rolleyes:

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...