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

Ajuda com FOR


Luis G Zeca

Pergunta

Bom dia! Estou fazendo um programa de simulação de pipeline, mas estou tendo problemas com um FOR. Pelo que testei, ele não está iniciando, é como se o programa pulasse ele. Alguém pode me dar uma ajuda?

Segue abaixo o programa:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <locale.h>

struct process_1{
    int t1, t2, t3, t4, t5;
    char n1[20], n2[20], n3[20], n4[20], n5[20];
}p1;

main(){
    //Setando linguagem em Portugues
    setlocale(LC_ALL, "Portuguese");
    //Declaracoes de variaveis
    int nucleo = 0, option = 0, i = 0, j = 0, ttime = 0, firsttime = 0, looptime = 0, times = 0, loopcount = 0, div = 0, rest = 0;
    //float ;
    strcpy(p1.n1, "Busca");
    strcpy(p1.n2, "Decodificacao");
    strcpy(p1.n3, "Busca de Dados");
    strcpy(p1.n4, "Executar");
    strcpy(p1.n5, "Escrever no Registro");
    
    //Introducão ao programa e coleta do numero de nucleos para calculo posterior
    printf("------Seja bem vindo ao simulador pipeline 2000------\n\n");
    printf("  Com ele é possivel calcular o tempo necessário\n     para rodar as suas instrucoes favoritas!\n\n");
    printf("----------------------------------------------\n");
    printf("Para comecar, insira o número de nucleos que o\nseu processador possui: ");    
    scanf("%d",&nucleo);
    if (nucleo > 12){
        printf("\nEste programa não foi projetado para computadores com mais de 12 núcleos\n");
    }//fim if
    else{
        printf("\n----------------------------------------------\n");
        //Apresentacão dos processos pré definidos ao usuario
        printf("Os processos que serão executados por padrão são:\n\n");
        printf("%s\n",p1.n1);
        printf("%s\n",p1.n2);
        printf("%s\n",p1.n3);
        printf("%s\n",p1.n4);
        printf("%s\n",p1.n5);
        //Menu de selecão para a definicão dos processos a serem executados
        quest1:
        printf("\nDeseja continuar com esses processos, ou quer altera-los?\n");
        printf("1| Continuar com processos padrão\n");
        printf("2| Mudar processos\n");
        scanf("%d",&option);
        switch (option){
            case 1:
                printf("Ótimo! Vamos definir o tempo que cada processo durará\n");
                printf("Lembrando que a unidade de tempo definida é ns (nano segundo)\n");
                printf("----------------------------------------------\n");
                printf("Digite em frente ao nome do processo seu respectivo tempo de duracão\n");                
                printf("%s ",p1.n1);
                scanf("%d",&p1.t1);
                printf("\n%s ",p1.n2);
                scanf("%d",&p1.t2);
                printf("\n%s ",p1.n3);
                scanf("%d",&p1.t3);
                printf("\n%s ",p1.n4);
                scanf("%d",&p1.t4);
                printf("\n%s ",p1.n5);
                scanf("%d",&p1.t5);
                printf("\nTempos Cadastrados com sucesso!\n");
                break;
            case 2:
                printf("\nTudo bem, vamos comecar a redefinir os processos\n");
                printf("Digite o nome dos processos a serem executados\n");
                printf("1º: ");
                fflush(stdin);
                scanf("%s",&p1.n1);
                printf("\n2º: ");
                scanf("%s",&p1.n2);
                printf("\n3º: ");
                scanf("%s",&p1.n3);
                printf("\n4º: ");
                scanf("%s",&p1.n4);
                printf("\n5º: ");
                scanf("%s",&p1.n5);
                printf("\n----------------------------------------------\n");
                printf("Agora vamos definir a duracão de cada processo\n");    
                printf("Lembrando que a unidade de tempo definida é ns (nano segundo)\n");
                printf("\n----------------------------------------------\n");
                printf("Digite em frente ao nome do processo seu respectivo tempo de duracão\n");        
                printf("%s ",p1.n1);
                scanf("%d",&p1.t1);
                printf("\n%s ",p1.n2);
                scanf("%d",&p1.t2);
                printf("\n%s ",p1.n3);
                scanf("%d",&p1.t3);
                printf("\n%s ",p1.n4);
                scanf("%d",&p1.t4);
                printf("\n%s ",p1.n5);
                scanf("%d",&p1.t5);
                printf("\nTempos Cadastrados com sucesso!\n");
                break;
            default:
                printf("Comando invalido, tente novamente!\n");
                goto quest1;                            
        }//fim switch
        printf("Agora que temos todos os dados cadastrados, precisamos saber de uma ultima coisa\n");
        printf("Quantas vezes essa instrucão deverá ser executada?\n");
        scanf("%d",&times);
        ttime = p1.t1 + p1.t2 + p1.t3 + p1.t4 + p1.t5;
        firsttime = ttime - p1.t1;
        i = firsttime;
        if (nucleo >= times){
            printf("%d ns é o tempo que seu computador leva para executar sua instrucão!",ttime);
        }
        else{
            div = times / nucleo;
            rest = times % nucleo;
            loopcount = (div + rest) - 1;        
            for(j=loopcount; j==0; j--){        
                for(i; i==ttime; i++){
                    looptime = looptime + 1;
                }
            }

            ttime = looptime + ttime;
            printf("%d ns é o tempo que seu computador leva para executar sua instrucão!",ttime);
            printf("%d ",looptime);
            printf("%d ",div);
            printf("%d ",rest);
            printf("%d ",loopcount);
            printf("%d ",p1.t1);
            printf("%d ",firsttime);
            printf("%d ",i);
            printf("%d ",j);
        }//fim else da verificacao de nucleos    
    }//fim else

}//end

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...