Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''matriz''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

  1. Olá pessoal!!! Sou iniciante no VBA e muitas ferramentas ainda não sei utilizar. Gostaria de saber, como faço pra obter uma matriz bidimensional, mas que o tamanho dessa fosse determinado pelo usuário? Ex:matriz 3x3, 4x4, 4x5, 5x4.... Desde já, obrigado!!
  2. Olá, estou fazendo seguinte programa com o objetivo simples de criar uma matriz com as dimensões dadas pelo usuário durante a execução do programa, depois preencher todos os elementos da matriz com um caractere também dado pelo usuário, e por fim exibir todos os elementos da matriz na tela. Ignorem o fato de eu não ter liberado memoria por que como disse ainda estou escrevendo o programa então falta algumas partes ainda. Bom vamos ao que interessa "O erro", o programa esta compilando normalmente sem erros. Porem não consigo executá-lo até o final, ele trava antes de imprimir os elementos da matriz. Eu depurei o programa no visual estúdio e obtive a seguinte mensagem de erro: "Exception thrown at 0x00CD19CD in SQUARE.exe: 0xC0000005: Access violation writing location 0xCDCDCDCD. If there is a handler for this exception, the program may be safely continued." Também já consegui localizar o erro só não sei como corrigi-lo :). O erro está na hora de alocar o caractere na matriz, ou seja na função "gravar_char(void)". Desde já agradeço se poderem me ajudar. OBS. se forem compilar o código em um compilador que não seja o do visual studio, alterem a função "scanf_s" por "scanf" ou então dará erro na compilação. CÓDIGO: /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // program name: SQUARE // // author: "I.L" // // target: criar uma matriz bidimencional com as dimenções dadas pelo usuario durante a execução do programa // /////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //libarys #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; //variaveis globais int COLUNAS_MATRIZ; int LINHAS_MATRIZ; char **MATRIZ; char CARACTER; //declaraçõa das funções void menu_inicial(void); void menu_texturas(void); char **Alocar_matriz_real(int linhas, int colunas); void gravar_char(void); void mostrar_matriz(char **vetor); void clearbuffer(void); //função principal (main) int main(void) { system("title SQUARE"); menu_inicial(); system("cls"); menu_texturas(); gravar_char(); mostrar_matriz(); cin.get(); return 0; } //menu inicial //recebe as dimenções do usuario void menu_inicial(void) { //aqui é onde o usuario entra com as dimenções da matriz printf("\tMENU INICIAL\n\n"); printf("Especifique o numero de colunas e o numerode linhas da matriz:\n"); printf("colunas: "); scanf_s("%i", &COLUNAS_MATRIZ); clearbuffer(); printf("linhas: "); scanf_s("%i", &LINHAS_MATRIZ); clearbuffer(); //gerando a matriz MATRIZ = Alocar_matriz_real(LINHAS_MATRIZ, COLUNAS_MATRIZ); } //menu texturas // da ao usuario a opção de escolher um caracter para peencher sua matriz void menu_texturas(void) { int escolha; //LISTA DE TESTURAS char text_01 = -78; char text_02 = -79; char text_03 = -80; char text_04 = 36; char text_05 = 35; char text_06 = 38; char text_07 = 64; char text_08 = -37; char text_09 = -36; char text_10 = -50; printf("\t TEXTURAS\n\n"); printf("Escolha uma textura para seu quadrado:"); printf("\n\n"); printf(" _____ _____ _____ _____ _____ _____ _____ _____ _____ ______\n"); printf("| 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | 10 |\n"); printf("| | | | | | | | | | | | | | | | | | | |\n"); printf("| %c | | %c | | %c | | %c | | %c | | %c | | %c | | %c | | %c | | %c |\n", text_01, text_02, text_03, text_04, text_05, text_06, text_07, text_08, text_09, text_10); printf("|_____| |_____| |_____| |_____| |_____| |_____| |_____| |_____| |_____| |______|\n\n\t\t\t\tEscolha: "); scanf_s("%i", &escolha); clearbuffer(); while (true) { if (escolha <= 0 || escolha > 10) { printf("\n"); while (escolha <= 0 || escolha > 10) { printf("Erro, valor %i nao permitido! ", escolha); scanf_s("%i", &escolha); clearbuffer(); } } break; } switch (escolha) { case 1: CARACTER = text_01; break; case 2: CARACTER = text_02; break; case 3: CARACTER = text_03; break; case 4: CARACTER = text_04; break; case 5: CARACTER = text_05; break; case 6: CARACTER = text_06; break; case 7: CARACTER = text_07; break; case 8: CARACTER = text_08; break; case 9: CARACTER = text_09; break; case 10: CARACTER = text_10; break; default: printf("\nErro desconhecido!"); cin.get(); break; } } //função que gera a matriz com as dimenções que o usuario passou char **Alocar_matriz_real(int linhas, int colunas) { if (linhas < 1 || colunas < 1) { /* verifica parametros recebidos */ printf("** Erro: Parametro invalido **\n"); return (NULL); } /* aloca espaço na memoria para a matriz */ char **matriz_aux = (char **)malloc((5 * sizeof(char *)) - 1); if (matriz_aux == NULL) { printf("** Erro: Memoria Insuficiente **"); return (NULL); } return(matriz_aux); } //função que aloca o caracter inserido pelo usuario void gravar_char(void) { //loop que vai alocar o caracter passado pelo usuario em cada elemento da matriz for (int linhas = 0; linhas < LINHAS_MATRIZ; ++linhas) { for (int colunas = 0; colunas < COLUNAS_MATRIZ; ++colunas) { MATRIZ[linhas][colunas] = (char)CARACTER; } } } //função que inprime na tela todos os elementos da matriz void mostrar_matriz(char **vetor) { printf("\tRESULTADO\n\n"); printf("Quadrado gerado: \n\n"); for (int linhas = 0; linhas < LINHAS_MATRIZ; ++linhas) { for (int colunas = 0; colunas < COLUNAS_MATRIZ; ++colunas) { printf("%c", vetor[linhas][colunas]); } printf("\n"); } } //limpa o buffer void clearbuffer(void) { char c; while ((c = getchar() != '\n' && c != EOF)); }
  3. Boa tarde,Estou com uma dúvida quanto a soma de colunas em matrizes. --> Pelo que eu sei, para somar valores inteiros de colunas, a matriz deve ser "int":int v_matriz[0][9];No exemplo a matriz tem apenas uma linha e 10 colunas. --> Depois atribuí valores as colunas:puts("Digite um numero:"); scanf("%d",v_matriz);// Aqui ele já se perde... --> Depois, teria que fazer uma operação com um valor específico da matriz:v_soma = (v_matriz[0][2]) + 1;--> Por fim o resultado:printf("result: %d",v_soma);-----------------------------------------------------------------------------------Código completo:#include <stdio.h>int main (){int v_matriz[0][9];int v_soma;puts("Digite um numero:");scanf("%d",v_matriz);v_soma = (v_matriz[0][2]) + 1;printf("Result: %d",v_soma);return(0);}--------------------------------------------------------Outro exemplo que não deu certo, usando string:int main (){char v_string[1][9];int v_soma;puts("Digite 9 numeros");scanf("%s",v_string);printf("O numero digitado foi: %s\n", v_string);printf("Posicao 2: %c \n\n",v_string[0][2]); v_soma = v_string[0][2]+1;printf("result 0: %d",v_soma);}
  4. Agora otimizado e customizado este vetor totalmente aleatório ficou mais bonito, forcei a função sorteia (...);gerar duas sequências aleatórias e sem repetições, assim, uma preenche a tabela que parece uma matriz porém não é, e a outra se transforma em posições para o vetor dinâmico, assim os números gerados pela primeira sequência que preencheu a a tabela são chamados aleatoriamente pelos números da segunda. Então as contagens segue normalmente entre "zero e onze", e no final, de cada apresentação são gerados outras duas sequências diferentes que uma preenche novamente a tabela e a outra chama novamente cada número correspondente da posição, limitei em "três", apresentações sequenciais aleatórias, para não estender muito o vídeo, más poderia colocar dezenas deapresentação e deixá-lo rodando quanto tempo fosse necessário para a chegada do fim, que termina imprimindo meu e-mail e meu nome. Este código não está disponível para visualização, más se realmente lhe interessa entre em contato comigo. https://www.youtube.com/watch?v=AI46q6ScPBo
  5. Necessito de ajuda em vetores. Esse program é para colocar 10 números inteiros e ele tem q dizer qual é o maior, e tem que usar função para isso. Eu fiz assim, mas está dando erro. #include<stdio.h> void valor (int n_, int *v){ int i; scanf ("%d", n_); for (i=n_; 0<i<=n_; i++) } int main(){ int n,i,v [10]; printf ("Digite 10 números inteiros\n"); scanf ("%d", v[10]); valor (n,v); for (i=n; 0<i<n; i++){ printf ("O valor do maior número será %d", v[10]); } return 0; }
  6. Este programa escolhe automaticamente as posições de uma matriz para receber caracteres pela entrada de dados, isto mesmo, o computador é quem faz a escolha da posição da matriz que irá receber o caractere digitado pelo usuário, imagine o quanto é útil este programa, para quem gosta de programar jogos, precisa muito destes tipos de recursos, temos muitas vêzes de deixar o computador fazer determinadas operações. https://www.youtube.com/watch?v=YMgVN6dZEe4
  7. Já vi muitos iniciantes em c perguntando como criar um programa para fazer sorteios de um nome dentro de uma matriz aleatoriamente e sem repetições dos mesmos. Sortear apenas um nome entre dez aleatoriamente não seria tão complicado, agora fazer sorteio de todos os dez nomes um por um sem repetir nenhum, já é algo mais difícil, e é isto que faz este programa, que após escolher todos os nomes em modo aleatório, imprime em outra matriz a formação modificada. https://www.youtube.com/watch?v=6HP5g3lKkRM
  8. Transformar um vetor em matriz usando a função memcpy, é algo muito fácil de se fazer. A função memcpy(); faz parte do arquivo de cabeçalho string.h. Com o recebimento de seus três parâmetros que são: memcpy ( *Mat, A, sizeof ( *Mat ) * 3 ); *Mat => destino. A => origem. 3 => número de bytes a serem copiados. Esta função está ápta a copiar blocos de memória, por isto não importa o tipo de dados armazenados a exemplos de outras funções. Neste código trago um claro exemplo de como utilizar esta importante função do C. O programa é um verdadeiro achado para iniciantes que querem aprender a gerar números aleatórios sem repetições de dígitos, onde nove sequência diferentes são geradas e é finalizado no fim da nona sequência. Veja abaixo uma imagem do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/12/memcpy-de-vetor-para-matriz.html
  9. E ae pessoal, amanhã tenho uma prova de matriz em c++ na faculdade e to perdidasso nesse assunto. Se puderem responder as questões das provas passadas por favor, não precisa de passo a passo, apenas por o código que vocês conseguiram fazer. 1 - Faça um programa em c++ que contenha uma função denominada Print. A função deverá receber uma letra e um número inteiro. O programa principal deverá solicitar do usuário a letra e a quantidade de vezes que essa letra deve ser impressa. Utilize a função Print na função principal. 2 - Faça um programa em C++ que contenha duas matrizes, 700 x 500 denominadas P e Q para armazenar 350.000 números inteiros cada uma delas, A matriz P deverá ser preenchida pelo o usuário e a matriz Q deverá armazenar a sexta potencia de cada elemento da matriz P. Imprima a matriz Q. 3 - Faça um programa em c++ que contenha uma função denominada Conta. A função deverá receber 3 valores reais e retornar o quadrado 1º multiplicado pela a soma dos outros dois. Imprima o resultado na função principal. 4 - Faça um programa em c++ que solicite do usuário: o fabricante, o modelo e o valor de 9876 smartphones. O programa deverá ter uma consulta por modelo. Imprima todos os dados do smartphone encontrado.
  10. O c é uma linguagem estruturada e cheia de recursos, matrizes por exemplo é uma estrutura de dados acima de duas dimensões, lembro aos iniciantes que matrizes devem ser declaradas com o mesmo tipo de dado, e quando estão armazenadas na memória, são em formas de uma tabela, sendo assim, criei este programa, que imprime uma tabela no qual é preenchida com valores inteiros já que a matriz é do tipo int. No que vamos preenchendo a matriz, o c já vai marcando automaticamente a diagonal principal, com a cor vermelha para seus valores, e os demais valores de outras posições são marcados em azul. Porventura este não é um ótimo código indicado a iniciantes desta importante linguagem de programação? Veja abaixo uma imagem do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/11/matriz-marcando-e-somando-diagonal.html
  11. Algumas vêzes precisamos preencher uma matriz em posições aleatórias, isto é, escolher exatamente onde inserir o elemento aceito pelo tipo da matriz. Isto é perfeitamente possível e muito útil. Num jogo da velha por exemplo as posições são escolhidas deste modo. Neste exemplo mostro como isto pode ser feito, num código bem identado, com recursos da biblioteca conio.h, inserindo coordenadas na tela com os textos bem posicionados, com côres e fundo bem definido. Código indicado aos interessados por linguagem c.
  12. Boa tarde estou com umas dúvidas aqui num projecto, dado um ficheiro que é uma matiz ao qual será preenchida com 0 e 1 e X em que o X é um obstáculo e o 1 é sujo, é uma simulação de limpeza de um robot(aspirador)em que uma matriz corresponde a uma divisão ou seja queremos transformar os 1 em 0 e cada vez que aparece um X contorná-lo de forma a continuar a limpeza, como posso fazer isto? Alguém me pode ajudar se tiverem dúvidas no exercício digam que eu tento esclarecer mais.Cumprimentos
  13. Quando precisamos agrupar tipos diferentes de dados temos como solução as structs. As variáveis declaradas dentro de uma struct denomina-se membros da struct, ou campos, e como disse acima, o tipo não importa, pode ser qualquer tipo aceito no c. Neste programa mostro um exemplo de matriz de struct, fácil de implementar e de grande utilidade, indicado a iniciantes em c. Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/11/matriz-de-struct.html
  14. Olá, tenho um trabalho para fazer com a seguinte questão em linguagem C: Menu 1) vetor 2)matriZ 3) sair Se escolher 1: Submenu 1.1) produto escalar 1.2) personalizado 1.3) voltar Se escolher 2: Submenu 2.1) Soma de Matrizes 2.2) Multiplicação de Matrizes 2.3) Determinante de ordem 2 2.4) Determinante de ordem 3 2.5) Voltar Se escolher 3: sair Estou com dificuldade em montar os Submenus apos o menu, como por as variáveis de vetores e matrizes (linha, coluna...) e voltar ao menu principal.. Se puderem me ajudar agradeço
  15. preciso fazer uma função para calcular a 4 potencia de uma matriz de ordem 100, chamando a função que faz a matriz quadrado abaixo: void quadrado (int mat[ ] [100], int quadmat [ ] [100] { int i,j,k; for (i=0 ; i<100 ; i++) { for (j=0 ; j<100 ; j++) { for (k=0 ; k<100 ; k++) { quadmat [ i ] [ j ] += mat [ i ] [ k ] * mat [ k ] [ j ]; } } }
  16. Na formação do conjunto dos números Naturais existe um tipo de numeral que possui a propriedade de ser divisível somente por um e por ele mesmo, recebendo a denominação de número primo. A descoberta dos números primos é imprescindível na Matemática, pois eles intitulam o princípio central na teoria dos números, consistindo no Teorema Fundamental da Aritmética. Esse Teorema satisfaz uma condição interessante no conjunto dos números naturais, ele afirma que todo número inteiro natural, sendo maior que 1, pode ser escrito como um produto de números primos, enfatizando a hipótese que o número 1 não pode ser considerado primo, pois ele tem apenas um divisor e não pode ser escrito na forma de produto de números primos. Quer saber mais detalhes sobre o assunto acesse o seguinte link abaixo de onde foi extraído partes do texto: http://www.brasilescola.com/matematica/numeros-primos.htm Más minha paixão é linguagem c, e o propósito deste trabalho é de ensinar os iniciantes em c criarem uma tabela de 1 a 100 e marcar na própria tabela as ocorrências dos números primos e não primos em côres destacadas veja na imagem abaixo: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/09/matriz-de-primos-e-não-primos.html
  17. Este é mais um programa onde trabalho com remoção em estrutura de dados, e neste algo mais avançado foi aplicado, a remoção da string procurada acontece na própria impressão da matriz, isto é se for encontrada. A função responsável pela remoção da string encontrada é a memset(); Da biblioteca padrão string.h; Estudem esta incrível função, todo programador deve estudar memset(); Usando o raciocínio e a lógica muitas outra coisas se podem fazer usando esta poderosa função. Na matriz, usei um poema de "Carlos Drummond de Andrade". Veja abaixo imagens do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/09/pesquisando-e-apagando-ocorrencias-de.html
  18. Localizar e remover ocorrências de um caractere numa frase previamente digitada pelo usuário é a finalidade deste código didático. O programa está funcionando perfeitamente aqui no meu eclipse, e aposto que funcionará com perfeição na sua IDE favorita, portanto aproveite este ótimo trabalho dedicado a estudantes de linguagens C. Veja abaixo imagens do programa em execução: Veja abaixo o link do códigodo programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/09/caracteres-pesquisando-e-removendo.html
  19. Em linguagem c matrizes de strings são matrizes bidimensionais e sua forma geral é: tipo_nome_da_variavel [ dimensão da esquerda ] [ dimensão da direita ]; onde a dimensão da esquerda indexa as linhas e a da direita indexa as colunas. Em linguagem C, ao contrário de outras linguagens, não existe um tipo de dados string original, por isso devemos criar vetores de caracteres ou matriz bidimensional para armazenamento de strings. Neste programa a matriz de string é lida caracter por caracter e é imprimida em duas dimensões, isto facilitou na busca de um caracter dentro da matriz. A função responsável pela busca de caracters dentro da matriz de string é a função int Pesq_let ( char Mat [ 11 ] [ 16 ], char *di );onde recebe dois parâmetros no protótipo, a matriz de char e um ponteiro para char. Este código pode ser adaptado para trabalhar com inteiros ou floats, basta um pouco de esforço e o futuro programador consegue fazer pesquisa dentro de uma matriz de inteiros ou float com sucesso. As configurações do cmd para esta janela estão na imagem abaixo, onde temos também imagens do funcionamento do programa. Veja abaixo imagens do programa em execução: Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/09/caracter-pesquisa-em-matriz.html
  20. Maaso

    ME AJUDEM :CC

    preciso fazer uma matriz 5x1 de caracteres ao inverso porem não estou conseguindo. Sou novo nesse assunto e preciso da ajuda de vocês. :/ Por exemplo : Matriz normal: Chocolate é Muito Bom Matriz inversa: é etalocohC otiuM moB #include<stdio.h> #include<locale.h> #include<string.h> main() { char matriz[5][100],n=1; int x; setlocale(LC_ALL,"Portuguese"); for(x=0;x<5;x++) { printf("Informe o %iº elemento da matriz:",n++); gets(matriz[x]); } // for(x=0;x<5;x++) // { // printf("%s",matriz[x]); // printf("\n"); // } for(x=strlen(matriz);x>0;x--){ printf("%s",matriz[x]); } }Erro: [Error] cannot convert 'char (*)[100]' to 'const char*' for argument '1' to 'size_t strlen(const char*)'
  21. Para os apaixonados por linguagem C, apresento este excelente código didático,onde a finalidade é de remover elementos que foram gerados e armazenados num vetor de 100 posições. O código possui tantos recursos em suas mais de 270 linhas que prefiro não comentar, ficaria enfadonho falar de cada um deles. É preferível que o futuro programador já tenha bons conhecimentos desta importante linguagem. Veja abaixo imagens do programa em execução: http://1.bp.blogspot.com/-kmYRv3YYioY/VeMzEN4kFVI/AAAAAAAACVg/e-A9ERd6vEM/s1600/aaa.PNG http://2.bp.blogspot.com/-b6EopTosxc4/VeMzD2Q6eZI/AAAAAAAACVc/4AT_Ic6w8hI/s1600/vir.PNG http://2.bp.blogspot.com/-DFdAp-UCw6g/VeMzEWiRN9I/AAAAAAAACVk/wg6xINFvF5Y/s1600/vri.PNG http://3.bp.blogspot.com/-VYVPaDbhhzQ/VeMzEiE2ylI/AAAAAAAACVw/aoUZAlhAP9I/s1600/vrit.PNG http://4.bp.blogspot.com/-kQxmq14mDpk/VeMzFB2Uu6I/AAAAAAAACV4/5-yXvw8Tso0/s1600/vritu.PNG http://1.bp.blogspot.com/-hZLDfF-X39M/VeMzF8OZ_MI/AAAAAAAACWQ/eu4M1dqRAJo/s1600/vrj.PNG http://1.bp.blogspot.com/-FekPp0ptXv0/VeMzFXr48nI/AAAAAAAACV8/rKmEoBdtzW4/s1600/vritv.PNG http://1.bp.blogspot.com/-F-dqVsxPOgQ/VeMzFixMVAI/AAAAAAAACWE/uboSA3aDByM/s1600/vritx.PNG Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/08/vetor-removendo-inteiros.html
  22. AleJF

    C++ Matriz

    Pessoal, sou iniciante em c++ e meu problema é o seguinte, o console pede ao usuário para inserir um valor int que sera a dimensão da matriz. struct Estado { int numero; string nome; int einicial; int efinal; int recebe1; int recebe2; }; int main () { cout << "entre com o valor: " << endl; int num; cin >> num; Estado atual[num]; // o problema é nessa linha } Eu estou usando a IDE Visual Studio 2013, ai não compila e ela mostra a declaração da matriz como o problema.
  23. Bom dia pessoa ! Sou novo no fórum, acabei de me registrar e gostaria de pedir uma ajuda a vocês, pesquisei no fórum e não encontrei. Preciso inserir valores em uma lista encadeada, mas está dando erro quando chega nas matrizes. O Código é um pouco grande, mas nem está terminado, buguei nessa parte e não encontro o erro. O erro acontece no procedimento inserir fim. #include<stdio.h> #include<stdlib.h> #include<string.h> struct cadastro { //Dados cadastrais do colega char nome[50]; char endereco[100]; char cidade[50]; char estado[30]; char idade[10]; char tresidencial[12]; char tcelular[12]; char email[30]; //Dados cadastrais do filho int qtdfilhos; char fnome[10][50]; char fnacionalidade[10][15]; char fidade[10][10]; char fsexo[10][15]; struct cadastro *prox; }; typedef struct cadastro cad; void inserirFim(cad **paramcad, char parnome[], char parendereco[], char parcidade[], char parestado[], char paridade[], char partresidencial[], char partcelular[], char paremail[], int parqtdfilhos, char parfnome[][50], char parfnacionalidade[], char parfidade[], char parfsexo[]) { cad *ncad;//criando ponteiro nova lista. ncad=(cad*)malloc(sizeof(cad));//alocando o espaço em memória strcpy(ncad->nome, parnome); strcpy(ncad->endereco, parendereco); strcpy(ncad->cidade, parcidade); strcpy(ncad->estado, parestado); strcpy(ncad->idade, paridade); strcpy(ncad->tresidencial, partresidencial); strcpy(ncad->tcelular, partcelular); strcpy(ncad->email, paremail); ncad->qtdfilhos = parqtdfilhos; strcpy(ncad->fnome, parfnome); strcpy(ncad->fnacionalidade, parfnacionalidade); strcpy(ncad->fidade, parfidade); strcpy(ncad->fsexo, parfsexo); ncad->proximo = NULL; if(*paramcad == NULL) { *paramcad = ncad;//se for insere a nova lista no final } else { cad *cadaux; cadaux = *paramcad; //coloca a lista atual na lista auxiliar while(cadaux->proximo != NULL) { //e vai percorrendo a lista ate encontrar o final ou seja NULL cadaux = cadaux->proximo; //enquato não acha o final ela fica colocando "as estruturas listas" na lista temporaria }//obviamente uma ora ela vai chegar no final da lista ou seja nesta linha cadaux->proximo = ncad;//como ele já esta no final da fila ele so adiciona a nova lista } } void recebe(cad **paramcad) { int x; printf("\nEste colega possui filho(s)?\n1 - Sim\n2 - não\n"); scanf("%d", &x); if(x==1) { fflush(stdin); char nome[50]; char endereco[100]; char cidade[50]; char estado[30]; char idade[10]; char tresidencial[12]; char tcelular[12]; char email[30]; //Recebe os dados cadastrais do colega printf("\nDigite o nome: "); gets(nome); // inserirFim(&cadastro,tmp); printf("Digite o endereco: "); gets(endereco); printf("Digite a cidade: "); gets(cidade); printf("Digite o estado: "); gets(estado); printf("Digite a idade: "); gets(idade); printf("Digite o telefone residencial: "); gets(tresidencial); printf("Digite o telefone celular: "); gets(tcelular); printf("Digite o email: "); gets(email); system("cls"); int qtdfilhos; char fnome[10][50]; char fnacionalidade[10][15]; char fidade[10][10]; char fsexo[10][15]; system("cls"); printf("\nDigite a quantidade de filhos: "); gets(qtdfilhos); fflush(stdin); int f; f=qtdfilhos; while(y != f) { printf("\nDigite os dados cadastrais do(s) filho(s)\n\n"); printf("Digite o nome do %d filho: ", y+1); gets(fnome[y]); fflush(stdin); printf("Digite a nacionalidade: "); gets(fnacionalidade[y]); fflush(stdin); printf("Digite a idade: "); gets(fidade[y]); fflush(stdin); printf("Digite o sexo: "); gets(fsexo[y]); fflush(stdin); system("cls"); y++; } inserirFim(paramcad,nome, endereco,cidade, etado, idade, tresidencial, tcellar, email, qtdfilhos, fnome, fnacionalidade, fidade, fsexo); } if(x==2) { fflush(stdin); char nome[50]; char endereco[100]; char cidade[50]; char estado[30]; char idade[10]; char tresidencial[12]; char tcelular[12]; char email[30]; //Recebe os dados cadastrais do colega printf("\nDigite o nome: "); gets(nome); // inserirFim(&cadastro,tmp); printf("Digite o endereco: "); gets(endereco); printf("Digite a cidade: "); gets(cidade); printf("Digite o estado: "); gets(estado); printf("Digite a idade: "); gets(idade); printf("Digite o telefone residencial: "); gets(tresidencial); printf("Digite o telefone celular: "); gets(tcelular); printf("Digite o email: "); gets(email); system("cls"); cidade cidade cidade inserirFim(paramcad,nome, endereco,cidade, etado, idade, tresidencial, tcellar, email); } if(x!= 1 && x!= 2) { printf("Opcao invalida!\n Escola uma opcao entre 1 e 2"); } } main() { int op=0; int subop=0; cad *cadastro; cadastro=NULL; while(op!=6) { system("cls"); printf("\nMenu Principal\n"); printf("\n1 - Cadastrar um novo colega e/ou filho\n2 - Mostrar os colegas cadastrados\n3 - Excluir um colega e/ou filho\n4 - Localizar os dados de um colega\n5 - Salvar as informacoes em arquivo\n6 - Sair\n"); printf("\n"); scanf("%d",&op); switch (op) { case 1: system("cls"); printf("\nMenu de Cadastramento\n\n1 - Cadastrar um colega\n2 - Cadastrar um filho\n\n"); scanf("%d", & subop); system("cls"); printf("\n"); if(subop==1) { printf("\n"); system("cls"); printf("Preencha os dados cadastrais para seu colega:\n"); recebe(&cadastro); } if (subop==2) { printf("\n"); printf("Preencha os dados cadastrais para seu filhos:\n"); system("pause>>null");//será removido quando todo o programa estiver concluido } if(subop != 1 && subop!=2) { printf("\n"); printf("Opcao invalida\nSelecione 1 ou 2"); system("pause>>null");//será removido quando todo o programa estiver concluido } break; case 2: system("cls"); break; case 3: printf("Menu de Exclusao\n1 - Exlcuir um colega\n2 - Excluir um filho"); scanf("%d", & subop); printf("\n"); if(subop==1) { } if (subop==2) { } if(subop != 1 && subop!=2) { } break; case 4: break; case 5: break; case 6: op=6; break; default: printf("\nOpcao invalida!\nSelecione uma opcao de 1 a 6"); system("pause>>null"); } } }
  24. 1) Suponha que, em uma biblioteca, hajam três arquivos distintos que contenham o nº de livros. Um dos arquivos guarda livros de Informática, outro guarda livros de Matemática e o outro guarda livros de História. a) Estes arquivos da biblioteca devem ser representados por três vetores de números inteiros, e o número armazenado em cada posição do vetor representará o código do livro. c) Crie uma estrutura que armazene todos os livros dos três arquivos em um arquivo apenas, e em ordem crescente dos códigos dos livros. 2) Crie um aplicativo que peça 30 valores ao usuário. Os dados serão armazenados em dois vetores, um para os valores pares, e outro para os valores ímpares. Cada vetor terá 5 posições. Quando o vetor estiver cheio, imprima-o na tela. Terminada a leitura dos 30 valores, escreva o valor dos dois vetores. Cada vetor pode ser preenchido tantas vezes quantas forem necessárias 3) Escreva um programa em C que leia do teclado um horário do dia (horas, minutos e segundos), e valide se a entrada é coerente. O programa deve ler um segundo horário (também validando), e caso este seja maior do que o primeiro, calcular e imprimir o tempo que decorreu entre os dois horários informados (caso contrário, informar que o segundo horário informado é anterior ao primeiro). O tempo decorrido deve ser informado na forma <H> horas, <M> minutos, <S> segundos. Caso algum dos campos tenha valor nulo, a respectiva unidade de tempo não deve ser informada. Por exemplo, se o tempo decorrido for de 1 minuto e 45 segundos, a mensagem impressa deve ser apenas “1 minuto, 45 segundos” (ou seja, o numero de horas não deve ser informado). O programa deve conter obrigatoriamente as seguintes subrotinas: a) Solicita ao usuário a digitação do horário; c) Verifica se o segundo horário é posterior ao primeiro. Caso seja, retorna o tempo decorrido (em segundos). Caso não seja, retorna o valor -1; d) Imprime o tempo decorrido, transformando de segundos para o formato solicitado (horas, minutos e segundos); 4) Faça uma subrotina que, procure por um elemento em uma matriz; O usuário deverá informar o elemento a ser procurado; Determine as coordenadas (linha e coluna) da primeira ocorrência deste elemento, S4e não estiver na matriz, informe que é inexistente. . 5) Crie um programa que permita armazenar o nome, a altura e da data de nascimento de até 10 pessoas. Cada pessoa deve ser representada por uma struct dentro do vetor. A data de nascimento deverá ser armazenada como String. Tenha uma sub-rotina que dê opção de imprimir os dados ao final do cadastramento, ou apenas
  25. Olá a todos. Gostaria de pedir para alguém me ajudar a corrigir esse código, pois fiz mais não estou conseguindo corrigir o erro que está dando. erro gerado pelo programa: segmentation fault (core dumped). Não sei o que estou fazendo de errado mais creio que seja minha linha que tem "matriz = aloca(m,n)" O programa esta sendo desenvolvimento no codeblock 13.12 linux xubuntu ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- #include<stdlib.h> #include<stdio.h> #include<locale.h> /* 2- Construa uma função que receba dois parâmetros m e n, aloque uma matriz de ordem m x n e retorne um ponteiro para a matriz alocada em tempo de execução. Crie ainda outra função que receba por parâmetro um ponteiro para matriz e libere a área de memória alocada. Finalmente, crie um programa (main) que teste/use as duas funções criadas. */ int *aloca(int m, int n); void liberaEspaco(int **p); int main(){ setlocale(LC_ALL,"portuguese"); int i=0,j=0,m,n, **matriz; printf("Informe o número de linhas que deseja em sua matriz:"); scanf("%d",&m); printf("Informe o número de colunas que deseja em sua matriz:"); scanf("%d",&n); matriz = aloca(m,n); for(i=0;i<m;i++){ for(j=0;j<n;j++){ printf("Matriz[%d][%d]:",i,j); scanf("%d",&matriz[j]); } } liberaEspaco(matriz); system("pause"); return 0; } int *aloca(int m, int n){ int *p; p=(int*)malloc(m*n*sizeof(int)); } void liberaEspaco(int **p){ free(p); }
×
×
  • Criar Novo...