Bem tenho um trabalho da faculdade (Faculdade de Tecnologia Senac GO) para fazer so que não tenho a minima ideia de como realizar o calculo e o programa tem que fazer o seguinte:
Compilador que eu utilizo e o Dev-C++
"Desenvolver um programa que seja capaz de fornecer a faixa de IPs utilizáveis para cada uma das VLANs criadas na infra-estrutura do projeto.
O usuário deve entrar com endereço de rede o programa deve informar o endereço de broadcast e faixa IP utilizável.
Cada octeto deve ser armazenado em uma variável separada"
já cheguei neste resultado
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct subrede{
int oct1,oct2,oct3,oct4;
}Subrede;
int menu(int op);
int menu2(int op1);
void insere(Subrede x[],int t);
void calc(Subrede x[],int qtdSR, int qtdHT);
int qtdSR(int qtd);
int qtdHT(int qtd);
int main(){
system("color f0");
Subrede vet[1];
int op,op1;
int qtdeHT=-1, qtdeSR=-1;
do{
op=menu(op);
switch (op){
case 0:
printf("Obrigado por utilizar o programa!");
break;
case 1:
insere(vet,1);
break;
case 2:
do{
op1=menu2(op1);
switch (op1){
case 1:
qtdeSR=qtdSR(qtdeSR);
break;
case 2:
qtdeHT=qtdHT(qtdeHT);
calc(vet, qtdeSR, qtdeHT);
break;
}
}while(op1!=1 || op1!=2);
break;
case 3:
break;
}
}while(op!=0);
system("pause");
return 0;
}
int menu(int op){
do{
printf("Escolha uma opcao:\n\n");
printf("1 - Inserir\n");
printf("2 - Calcular\n");
printf("3 - Imprimir\n");
printf("0 - Sair\n\n");
printf("Opcao: ");
scanf("%d",&op);
}while(op<0 || op>3);
return op;
}
int menu2(int op1){
int sai=-1;
do{
printf("\n\nEscolha uma opcao:\n\n");
printf("1 - Informar quantidade de sub redes: \n");
printf("2 - Informar quantidade de host por sub rede: \n");
scanf("%d",&op1);
if(op1<1 || op1>2){
printf("Opcao Invalida!");
}else{
sai=1;
}
}while(sai!=1);
return op1;
}
void insere(Subrede x[],int t){
do{
printf("Informe o 1%c octeto: ",167);
scanf("%d",&x[t].oct1);
}while(x[t].oct1<=0 || x[t].oct1>255);
do{
printf("Informe o 2%c octeto: ",167);
scanf("%d",&x[t].oct2);
}while(x[t].oct1<=0 || x[t].oct1>255);
do{
printf("Informe o 3%c octeto: ",167);
scanf("%d",&x[t].oct3);
}while(x[t].oct1<=0 || x[t].oct1>255);
do{
printf("Informe o 4%c octeto: ",167);
scanf("%d",&x[t].oct4);
}while(x[t].oct1<=0 || x[t].oct1>255);
}
int qtdSR(int qtd){
printf("Informe a quantidade de sub redes deseja calcular: \n");
scanf("%d",&qtd);
return qtd;
}
int qtdHT(int qtd){
printf("Informe a quantidade de Hosts deseja ter em cada sub rede: \n");
scanf("%d",&qtd);
return qtd;
}
void calc(Subrede x[],int qtdSR, int qtdHT){
int mascara=0,cont=0,sai=8;
if(qtdSR!=-1){
}else{
if(qtdHT!=-1){
do{
if(mascara<=qtdHT){
cont=cont+1;
mascara=mascara*2;
printf("pow %d\n",mascara);
printf("Cont: %d\n\n",cont);
}
}while(mascara<qtdHT/* || cont<=7*/);
}
}
}
so que na função "calc" eu to com um problema nessa parte comentada quando a variável "cont" chega <=7 ele não para.
Pergunta
lucasoliveiramarques
Bem tenho um trabalho da faculdade (Faculdade de Tecnologia Senac GO) para fazer so que não tenho a minima ideia de como realizar o calculo e o programa tem que fazer o seguinte:
Compilador que eu utilizo e o Dev-C++
"Desenvolver um programa que seja capaz de fornecer a faixa de IPs utilizáveis para cada uma das VLANs criadas na infra-estrutura do projeto.
O usuário deve entrar com endereço de rede o programa deve informar o endereço de broadcast e faixa IP utilizável.
Cada octeto deve ser armazenado em uma variável separada"
já cheguei neste resultado
so que na função "calc" eu to com um problema nessa parte comentada quando a variável "cont" chega <=7 ele não para.alguém tem solução para esse codigo ou tenho que começar desde o inicio :unsure:
por enquanto so tem a parte de preenchimento dos dados esta faltando a parte do calculo que eu não tenho a minima ideia de como fazer
Editado por lucasoliveiramarquesLink 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.