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?
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",×);
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
Pergunta
Luis G Zeca
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",×);
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
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.