andersonwxavier Postado Março 27, 2012 Denunciar Share Postado Março 27, 2012 Bom dia, Galera meu primeiro tópico no forum, comecei o curso de CC recentemente. e estou tendo muita dificuldade em uma materia chamadaEstrutura de dados,peço a ajuda de vocês, desde já muito obrigado a todos.Eu quero entender o programa abaixo o professor passou esse codigo e quer, que seja criado estruturas que estão faltando no programa,quero que alguém me explique como faço para criar essas estruturaso conteudo que está comentado são as estruturas que precisa ser criadasObs(quero apenas uma explicação dizendo como fazer)Muito Obrigado a todos!!!Segue programa.#include <iostream>#include <string.h>using namespace std;#define tam_max 10typedef int LISTA[tam_max];/*int acessar (LISTA l, int pos, int fim, int &valor);int alterar (LISTA l, int pos, int fim, int nvalor);*/int inserir_antes (LISTA l, int tam, int pos, int &fim, int valor);//int remover (LISTA l, int pos, int &fim, int &valor);void mostrar_lista (LISTA l, int fim);int main() { LISTA minhalista; int valor, final = 0, posicao,r; char op; do { mostrar_lista (minhalista, final); puts ("\n\nMenu principal"); puts ("\n\nEscolha a operacao que deseja realizar:"); puts ("\n\n1- Inserir valor\n\n2- Acessar valor de uma posicao\n\n3- Alterar valor de uma posicao"); puts ("\n4- Remover posicao\n\n5- Sair\n\nDigite a opcao:"); op = getchar(); switch (op) { case '1': puts ("\n\nDigite o valor (inteiro) a inserir: "); scanf ("%d",&valor); fflush(stdin); puts ("\n\nDigite a posicao em que deseja inserir: "); scanf ("%d",&posicao); fflush(stdin); r=inserir_antes(minhalista, tam_max, posicao-1, final, valor); if (r==1) puts ("\n\nValor inserido com sucesso!"); else puts ("\n\nERRO NA INSERCAO!"); getchar(); break; } } while (op!='5');}void mostrar_lista (LISTA l, int fim) { puts ("\n\nSITUACAO DA LISTA\n\n"); for (int i = 0; i < fim; i++) printf ("%d ", l); if (fim == 0) puts ("Lista Vazia"); puts ("\n\n");}int inserir_antes (LISTA l, int tam, int pos, int &fim, int valor) { int ret, i; if (fim < tam){ if (pos < 0 || pos > fim) { puts ("\n\nPosicao Invalida para a insercao\n\n"); ret=0; } else { for (i=fim; i<pos; i--) l=l[i-1]; l[pos]=valor; fim++; ret =1; } } else { puts ("\n\nLista Cheia\n\n"); ret = 0; }; return (ret);} Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 CPP Postado Março 27, 2012 Denunciar Share Postado Março 27, 2012 Na sua função inserir_antes você tem um for que procura uma posição vaga e grava o valor informado.Pra sua função acessar() você só precisa validar os limites (como faz na inserir_antes) e copiar o conteudo de l[pos] pra valor.Pra função alterar() é a mesma coisa, só que você faz l[pos] ser igual ao valor informado.Ajudou?Abs Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
andersonwxavier
Bom dia, Galera meu primeiro tópico no forum, comecei o curso de CC recentemente. e estou tendo muita dificuldade em uma materia chamada
Estrutura de dados,
peço a ajuda de vocês, desde já muito obrigado a todos.
Eu quero entender o programa abaixo o professor passou esse codigo e quer, que seja criado estruturas que estão faltando no programa,
quero que alguém me explique como faço para criar essas estruturas
o conteudo que está comentado são as estruturas que precisa ser criadas
Obs(quero apenas uma explicação dizendo como fazer)
Muito Obrigado a todos!!!
Segue programa.
#include <iostream>
#include <string.h>
using namespace std;
#define tam_max 10
typedef int LISTA[tam_max];
/*int acessar (LISTA l, int pos, int fim, int &valor);
int alterar (LISTA l, int pos, int fim, int nvalor);*/
int inserir_antes (LISTA l, int tam, int pos, int &fim, int valor);
//int remover (LISTA l, int pos, int &fim, int &valor);
void mostrar_lista (LISTA l, int fim);
int main() {
LISTA minhalista;
int valor, final = 0, posicao,r;
char op;
do {
mostrar_lista (minhalista, final);
puts ("\n\nMenu principal");
puts ("\n\nEscolha a operacao que deseja realizar:");
puts ("\n\n1- Inserir valor\n\n2- Acessar valor de uma posicao\n\n3- Alterar valor de uma posicao");
puts ("\n4- Remover posicao\n\n5- Sair\n\nDigite a opcao:");
op = getchar();
switch (op) {
case '1': puts ("\n\nDigite o valor (inteiro) a inserir: ");
scanf ("%d",&valor);
fflush(stdin);
puts ("\n\nDigite a posicao em que deseja inserir: ");
scanf ("%d",&posicao);
fflush(stdin);
r=inserir_antes(minhalista, tam_max, posicao-1, final, valor);
if (r==1) puts ("\n\nValor inserido com sucesso!");
else puts ("\n\nERRO NA INSERCAO!");
getchar();
break;
}
} while (op!='5');
}
void mostrar_lista (LISTA l, int fim) {
puts ("\n\nSITUACAO DA LISTA\n\n");
for (int i = 0; i < fim; i++)
printf ("%d ", l);
if (fim == 0) puts ("Lista Vazia");
puts ("\n\n");
}
int inserir_antes (LISTA l, int tam, int pos, int &fim, int valor) {
int ret, i;
if (fim < tam){
if (pos < 0 || pos > fim) {
puts ("\n\nPosicao Invalida para a insercao\n\n");
ret=0;
}
else {
for (i=fim; i<pos; i--)
l=l[i-1];
l[pos]=valor;
fim++;
ret =1;
}
}
else {
puts ("\n\nLista Cheia\n\n");
ret = 0;
};
return (ret);
}
Link para o comentário
Compartilhar em outros sites
1 resposta 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.