saulogoiana
-
Posts
19 -
Cadastrado em
-
Última visita
Tipo de conteúdo
Artigos
Selos
Fabricantes
Livros
Cursos
Análises
Fórum
posts postados por saulogoiana
-
-
Olá!!
Meu código está compilando normalmente mas quando executo o programinha "apresenta problemas".
Se puder me ajudar agradeço.
EDIT: Vou colocar também a função de inserção na Arvore Binaria. Ao inserir deveria apontar para o nó pai mas isso parece não acontecer.
void inserir_recursivo(int val,T *raiz, T pai){ if(*raiz == NULL){//Testar se o valor para onde o ponteiro está apontando é nulo printf("\n\n --> %d",val); T tmp = (T) malloc(sizeof(NODE)); inicia_no(&tmp,val); tmp->pai = pai; *raiz = tmp; printf("\nINSERIDO COM SUCESSO!\n"); printf("end: %x | pai: %x\n",&tmp,tmp->pai); }else{ if(val < (*raiz)->valor)//Testar se o conteúdo valor no endereço de raiz é maior que o a ser inserido inserir_recursivo(val, &((*raiz)->esq),*raiz);//Recursividade passando o endereço no CONTEÚDO ENDEREÇO do nó à esquerda else if(val == (*raiz)->valor){ printf("\nValor ja existente!\n"); return; }else inserir_recursivo(val, &((*raiz)->dir),*raiz);//Recursividade passando o endereço no CONTEÚDO ENDEREÇO do nó à direita } return; }
struct NODE { int valor; struct NODE *dir; struct NODE *esq; struct NODE *pai; }; typedef NODE *T; void pre_ordem(T r){ if(r == NULL) return; else{ T tmp = r; while(tmp!=NULL){ printf("\n%d",tmp->valor); tmp = tmp->esq; if((tmp==NULL) && (tmp->pai !=NULL)){ T tmp2 = tmp->pai; if(tmp2){ if(tmp2->dir!=NULL){ tmp = tmp2->dir; }else return; } } } return; } }
-
Olá companheiros!
O problema do meu código é que não estou sabendo como tratar os ponteiros, na última linha parece que a variável tmp1 não está "caminhando" para o endereço à direita fazendo com que fique infinitamente no laço while.
Meu resultado final deve ser uma árvore balanceada usando o algoritmo DSW.
struct NODE { int valor; struct NODE *dir; struct NODE *esq; }; typedef NODE *T; void espinhadorsal(T *raiz){ T *tmp1,*tmp2; tmp2 = tmp1 = raiz; while(tmp1!=NULL){ if((*tmp1)->esq != NULL){ tmp2 = tmp1; (*tmp1) = (*tmp1)->esq; if((*tmp1)->esq!=NULL){ (*tmp1)->esq->dir = (*tmp1)->dir;//1 (*tmp2)->esq = (*tmp1)->dir;//2 } (*tmp1)->dir = *tmp2;//3 raiz = tmp1;//4 tmp1 = raiz; } else{ (*tmp1)=(*tmp1)->dir; } } return; }
- 1
-
Obrigado pela resposta irmão mas eu acabei usando a igualdade trigonometrica onde sen^2(x) = (1-cos(2x))/2
-
Boa tarde, pessoal!
Estou com uma duvida boba, preciso calcular sen^2(x) em python mas não sei a sintaxe para sen^2.
Estou usando a OCTAVE GNU. Obrigado!
-
Olá colegas!
Estou com problemas ao cadastrar um funcionário com o código seguinte.
O salário não está sendo armazenado corretamente.
Spoiler#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <iostream> using namespace std; //Estruturas struct nascData { int dia; int mes; int ano; }; struct Funcionario { char nome[35]; char cargo[15]; float salario[15]; int CPF; int matricula; nascData data_nascimento; }; //Protótipos das funções int menu(); void cadastrarFuncionario(Funcionario M[], int, int); int imprimirMatricula(int, Funcionario V[]); void imprimirCadastros(Funcionario M[], int); void linhas_sinais(); //Função principal int main() { menu(); } //Dev Funções void linhas_sinais() { int i; for(i = 0; i < 50; i++) { printf("#"); }; printf("\n"); } int menu() { //Declaração das variaveis int op_usr, matr, matricula = 0; Funcionario tCad[50];//Total de Cadastros int nCad = 0;//Qnt de cadastros //Funcionario Func; do { printf("---- MENU ----\n"); linhas_sinais(); printf("1--> Cadastrar Funcionario.\n"); printf("2--> Acessar dados por matricula.\n"); printf("3--> Acessar todos os cadastros.\n0--> SAIR.\n"); linhas_sinais(); printf("--> "); scanf("%i", &op_usr); fflush(stdin); system("cls"); //Avaliar escolha switch(op_usr) { case 1: matricula++; cadastrarFuncionario(tCad, nCad, matricula); nCad++; break; case 2: printf("Digite a matricula procurada: "); scanf("%i", &matr); fflush(stdin); system("cls"); matr = imprimirMatricula(matr, tCad); if(matr < 0) printf("Matricula nao encontrada!\n"); else { linhas_sinais(); printf("Funcionario: %s\n Cargo: %s\n Salario: %f\n", tCad[matr].nome, tCad[matr].cargo, tCad[matr].salario); linhas_sinais(); } break; case 3: if(nCad <= 0) { printf("Nao ha cadastros!\n"); } else { imprimirCadastros(tCad, nCad); } break; case 0: printf("ENCERRADO!\n"); system("pause"); return 0; break; default: break; } system("pause"); system("cls"); } while(op_usr != 0); } //Vetor V do tipo Funcionario, n é a posição no vetor, matr é o nº de matricula void cadastrarFuncionario(Funcionario V[], int n, int matr) { Funcionario Gen; printf("Digite o nome do funcionario: "); scanf("%s", Gen.nome); fflush(stdin); printf("Digite o cargo do funcionario %s: ", Gen.nome); scanf("%s", Gen.cargo); fflush(stdin); printf(" Salario: "); scanf("%f",&Gen.salario); fflush(stdin); printf("\n-->%f\n",Gen.salario); fflush(stdin); printf(" CPF: "); scanf("%i", &Gen.CPF); fflush(stdin); printf(" Digite a data de nascimento:\n"); printf(" Dia: "); scanf("%i", &Gen.data_nascimento.dia); fflush(stdin); printf(" Mes: "); scanf("%i", &Gen.data_nascimento.mes); fflush(stdin); printf(" Ano: "); scanf("%i", &Gen.data_nascimento.ano); fflush(stdin); Gen.matricula = matr; V[n] = Gen; linhas_sinais(); printf("\nCADASTRO EFETUADO!\n"); linhas_sinais(); } void imprimirCadastros(Funcionario V[], int n) { int i; printf("------ FUNCIONARIOS ------\n"); for(i = 0; i < n; i++) { printf("|%i|\nNome: %s\nMatricula: %i\n\n", i + 1, V[i].nome, V[i].matricula); } } int imprimirMatricula(int matr, Funcionario V[]) { int i; for(i = 0; i < sizeof(V); i++) if(matr == V[i].matricula) return i; else { return -1; } }
-
Olá Fórum!
Estou com um exercício que pede para fazer duas funções recursivas, uma para calculo de fatorial e outra para apresentar os divisores de um número inteiro.
A primeira função recursiva eu consegui, a segunda não estou conseguindo desenvolver;
#include<stdio.h> int fatorial(int n){ if(n==0){ return 1; }else{ return n*fatorial(n-1); } } void divisores(int n){ int i,r; divisores(n-1); r=n%n-1; if(n==0){ return 0; }else{ printf("%i",r); } } main(){ int x; x=fatorial(4); printf("%i\n",x); divisores(10); system("pause"); return 0; }
Por favor me ajude!
-
@isrnick Muito Obrigado!
O problema da leitura do sexo foi resolvido.
Eu adoraria saber como eu posso corrigir minha função para procurar um nome no vetor.
Spoiler#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> typedef struct{ char Sexo; char Nome[20]; int Matricula; float Media; char Status[3]; }Aluno; void flush_stdin(){ int ch; do { ch = fgetc(stdin); } while (ch != EOF && ch != '\n'); } void setCadastro(Aluno A[],int nAlunos){ int i,j,auxInt; float auxFloat,s; Aluno auxAlu; char nome[20]; char sexo; for(i=0;i<nAlunos;i++){ printf("Digite o nome do aluno %i: ",i+1); scanf("%s",&nome); flush_stdin(); strcpy(A[i].Nome,nome); printf("Digite o sexo <M/F>: "); scanf("%c",&sexo); flush_stdin(); sexo=toupper(sexo); A[i].Sexo=sexo; printf("Digite o numero de matricula: "); scanf("%i",&auxInt); flush_stdin(); A[i].Matricula=auxInt; s=0; for(j=0;j<4;j++){ printf("Digite a nota %i:",j+1); scanf("%f",&auxFloat); flush_stdin(); s+=auxFloat; } A[i].Media=s/4; if(A[i].Media>6){ strcpy(A[i].Status,"AP"); }else if(A[i].Media<5){ strcpy(A[i].Status,"RP"); }else{ strcpy(A[i].Status,"PF"); } if((A[i].Media<A[i-1].Media)&&(i>0)){ auxAlu=A[i]; A[i]=A[i-1]; A[i-1]=auxAlu; } printf("\n"); } } void procuraNome(char nome[],Aluno A[],int i){ if(nome==A[i].Nome){ printf("\n-- %i --\nNome: %s\nMatricula: %i\n",i+1,A[i].Nome,A[i].Matricula); printf("Media: %.2f\n\n",A[i].Media); } } void procuraSexo(char sexo,Aluno A[],int i){ if(sexo==A[i].Sexo){ printf("\n-- %i --\nNome: %s\nMatricula: %i\n",i+1,A[i].Nome,A[i].Matricula); printf("Media: %.2f\n\n",A[i].Media); } } void getCadastro(Aluno A[],int n){ int i; printf("------ ALUNOS ------\n"); for(i=0;i<n;i++){ printf("|%i|\nNome: %s\nSexo: %c\n",i+1,A[i].Nome,A[i].Sexo); printf("Matricula: %i\nMedia: %.2f\n\n",A[i].Matricula,A[i].Media); } } void getStatus(Aluno A[],int n){ int i; printf("------ STATUS ------\n"); for(i=0;i<n;i++){ printf("|%i|\nNome: %s\nEstado: %s\n",i+1,A[i].Nome,A[i].Status); printf("\n"); } } int menu(){ int escolha; printf("|||| MENU ||||\n"); printf("Escolha uma das opções:\n"); printf("1-> Cadastrar Aluno.\t2-> Cadastros.\n"); printf("3-> Busca por nome.\t4-> Busca por sexo.\n"); printf("5-> Consultar Aprovados/Reprovados/Prova Final.\n6-> Atualizar cadastros.\n"); printf("0-> Sair.\n"); scanf("%i",&escolha); flush_stdin(); return escolha; } main(){ int i,n,p,esc,esc2=1; char nome[20],sexo; Aluno A[10]; while(esc2!=0){ esc=menu(); switch(esc){ case 0: esc2=0; break; case 1: system("cls"); printf("|||| CADASTRAR ALUNOS ||||\n\n"); printf("Digite a quantidade de alunos a serem cadastrados: "); scanf("%i",&n); flush_stdin(); printf("\n"); setCadastro(A,n); printf("\nCADASTROS EFETUADOS!\n"); system("pause"); system("cls"); break; case 2: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastro armazenado!\n"); system("pause"); }else{ getCadastro(A,n); system("pause"); } system("cls"); break; case 3: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastrado armazenado!\n"); system("pause"); }else{ do{ printf("|\t\tPROCURA POR NOME\t\t|\n"); printf("%i CADASTRO(S)\n",n); printf("Digite o nome do aluno: "); scanf("%s",&nome); flush_stdin(); for(i=0;i<n;i++){ procuraNome(nome,A,i); } printf("Repetir busca? CONTINUAR<1>/SAIR<2>\n"); scanf("%i",&esc2); flush_stdin(); system("cls"); }while(esc2!=2); } system("cls"); break; case 4: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastrado armazenado!\n"); system("pause"); }else{ do{ printf("|\t\tPROCURA POR SEXO\t\t|\n"); printf("%i CADASTRO(S)\n",n); printf("Digite o sexo do aluno <M/F>: "); scanf("%c",&sexo); flush_stdin(); sexo=toupper(sexo); printf("Alunos do sexo |%c|",sexo); for(i=0;i<n;i++){ procuraSexo(sexo,A,i); } printf("Repetir busca? CONTINUAR<1>/SAIR<2>\n"); scanf("%i",&esc2); flush_stdin(); system("cls"); }while(esc2!=2); } system("cls"); break; case 5: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastro armazenado!\n"); system("pause"); }else{ getStatus(A,n); system("pause"); } system("cls"); break; case 6: system("cls"); printf("|||| CADASTRAR ALUNOS ||||\n\n"); printf("Digite a quantidade de alunos a serem cadastrados: "); scanf("%i",&n); flush_stdin(); printf("\n"); setCadastro(A,n); printf("\nCADASTROS EFETUADOS!\n"); system("pause"); system("cls"); break; } } system("cls"); printf("ENCERRADO!\n\n"); system("pause"); return 0; }
- 2
-
Fiz as alterações no código e continuou o problema na hora de ler o sexo.
Spoiler#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> typedef struct{ char Sexo; char Nome[20]; int Matricula; float Media; char Status[3]; }Aluno; void setCadastro(Aluno A[],int nAlunos){ int i,j,auxInt; float auxFloat,s; Aluno auxAlu; char nome[20]; char sexo; for(i=0;i<nAlunos;i++){ printf("Digite o nome do aluno %i: ",i+1); scanf("%s",&nome); strcpy(A[i].Nome,nome); printf("Digite o sexo <M/F>: "); scanf("%c",&sexo); sexo=toupper(sexo); A[i].Sexo=sexo; printf("Digite o numero de matricula: "); scanf("%i",&auxInt); A[i].Matricula=auxInt; s=0; for(j=0;j<4;j++){ printf("Digite a nota %i:",j+1); scanf("%f",&auxFloat); s+=auxFloat; } A[i].Media=s/4; if(A[i].Media>6){ strcpy(A[i].Status,"AP"); }else if(A[i].Media<5){ strcpy(A[i].Status,"RP"); }else{ strcpy(A[i].Status,"PF"); } if((A[i].Media<A[i-1].Media)&&(i>0)){ auxAlu=A[i]; A[i]=A[i-1]; A[i-1]=auxAlu; } printf("\n"); } } void procuraNome(char nome[20],Aluno A[],int nAlunos){ int p=-1,i; for(i=0;i<nAlunos;i++){ if(A[i].Nome==nome[20]){ printf("\n-- %i --\nNome: %s\nMatricula: %i\nMedia: %.2f\n\n",i+1,A[i].Nome,A[i].Matricula,A[i].Media); } } } void procuraSexo(char sexo[1],Aluno A[],int i,int nAlunos){ if(sexo==A[i].Sexo){ printf("\n-- %i --\nNome: %s\nMatricula: %i\nMedia: %.2f\n\n",i+1,A[i].Nome,A[i].Matricula,A[i].Media); } } void getCadastro(Aluno A[],int n){ int i; printf("------ ALUNOS ------\n"); for(i=0;i<n;i++){ printf("|%i|\nNome: %s\nSexo: %s\nMatricula: %i\nMedia: %.2f\n\n",i+1,A[i].Nome,A[i].Sexo,A[i].Matricula,A[i].Media); } } void getStatus(Aluno A[],int n){ int i; printf("------ STATUS ------\n"); for(i=0;i<n;i++){ printf("|%i|\nNome: %s\nEstado: %s\n",i+1,A[i].Nome,A[i].Status); printf("\n"); } } int menu(){ int escolha; printf("|||| MENU ||||\n"); printf("Escolha uma das opções:\n"); printf("1-> Cadastrar Aluno.\t2-> Cadastros.\n"); printf("3-> Busca por nome.\t4-> Busca por sexo.\n"); printf("5-> Consultar Aprovados/Reprovados/Prova Final.\t6-> Atualizar cadastros.\n"); printf("0-> Sair.\n"); scanf("%i",&escolha); return escolha; } main(){ int i,n,p,esc,esc2=1; char nome[20],sexo; Aluno A[10]; while(esc2!=0){ esc=menu(); switch(esc){ case 0: esc2=0; break; case 1: system("cls"); printf("|||| CADASTRAR ALUNOS ||||\n\n"); printf("Digite a quantidade de alunos a serem cadastrados: "); scanf("%i",&n); printf("\n"); setCadastro(A,n); printf("\nCADASTROS EFETUADOS!\n"); getch(); system("cls"); break; case 2: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastro armazenado!\n"); getch(); }else{ getCadastro(A,n); getch(); } system("cls"); break; case 3: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastrado armazenado!\n"); getch(); }else{ do{ printf("|\t\tPROCURA POR NOME\t\t|\n"); printf("%i CADASTRO(S)\n",n); printf("Digite o nome do aluno: "); scanf("%s",&nome); procuraNome(nome,A,n); if(p>=0){ printf("\n-- %i --\nNome: %s\nMatricula: %i\nMedia: %.2f\n\n",p+1,A[p].Nome,A[p].Matricula,A[p].Media); }else{ printf("|%i|Nome não encontrado!\n",p); } printf("Repetir busca? CONTINUAR<1>/SAIR<2>\n"); scanf("%i",&esc2); system("cls"); }while(esc2!=2); } system("cls"); break; case 4: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastrado armazenado!\n"); getch(); }else{ do{ printf("|\t\tPROCURA POR SEXO\t\t|\n"); printf("%i CADASTRO(S)\n",n); printf("Digite o sexo do aluno <M/F>: "); scanf("%s",&sexo); strupr(sexo); printf("Alunos do sexo |%c|",sexo); for(i=0;i<n;i++){ procuraSexo(sexo,A,i,n); } printf("Repetir busca? CONTINUAR<1>/SAIR<2>\n"); scanf("%i",&esc2); system("cls"); }while(esc2!=2); } system("cls"); break; case 5: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastro armazenado!\n"); getch(); }else{ getStatus(A,n); getch(); } system("cls"); break; case 6: system("cls"); printf("|||| CADASTRAR ALUNOS ||||\n\n"); printf("Digite a quantidade de alunos a serem cadastrados: "); scanf("%i",&n); printf("\n"); setCadastro(A,n); printf("\nCADASTROS EFETUADOS!\n"); getch(); system("cls"); break; } } system("cls"); printf("ENCERRADO!"); getch(); return 0; }
Obrigado pela atenção.
- 1
-
Olá Fórum!
Estou com um problema num algoritmo usando funções para armazenar, imprimir e pesquisar dados de alunos em um vetor.
Parece que está havendo conflito para armazenar sexo e nome de um índice do tipo aluno, pois quando eu retiro a opção de armazenar o sexo ele executa tranquilamente.
O código está no spoiler.
Spoiler#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> typedef struct{ char Sexo[1]; char Nome[20]; int Matricula; float Media; char Status[3]; }Aluno; void setCadastro(Aluno A[],int nAlunos){ int i,j,auxInt; float auxFloat,s; Aluno auxAlu; char nome[20]; char sexo[1]; for(i=0;i<nAlunos;i++){ printf("Digite o nome do aluno %i: ",i+1); scanf("%s",&nome); strcpy(A[i].Nome,nome); printf("Digite o sexo <M/F>: "); scanf("%s",&sexo); sexo[1]=toupper(sexo); A[i].Sexo[1]=sexo[1]; printf("Digite o numero de matricula: "); scanf("%i",&auxInt); A[i].Matricula=auxInt; s=0; for(j=0;j<4;j++){ printf("Digite a nota %i:",j+1); scanf("%f",&auxFloat); s+=auxFloat; } A[i].Media=s/4; if(A[i].Media>6){ strcpy(A[i].Status,"AP"); }else if(A[i].Media<5){ strcpy(A[i].Status,"RP"); }else{ strcpy(A[i].Status,"PF"); } if((A[i].Media<A[i-1].Media)&&(i>0)){ auxAlu=A[i]; A[i]=A[i-1]; A[i-1]=auxAlu; } printf("\n"); } } void procuraNome(char nome[20],Aluno A[],int nAlunos){ int p=-1,i; for(i=0;i<nAlunos;i++){ if(A[i].Nome==nome[20]){ printf("\n-- %i --\nNome: %s\nMatricula: %i\nMedia: %.2f\n\n",i+1,A[i].Nome,A[i].Matricula,A[i].Media); } } } void procuraSexo(char sexo[1],Aluno A[],int i,int nAlunos){ if(sexo==A[i].Sexo){ printf("\n-- %i --\nNome: %s\nMatricula: %i\nMedia: %.2f\n\n",i+1,A[i].Nome,A[i].Matricula,A[i].Media); } } void getCadastro(Aluno A[],int n){ int i; printf("------ ALUNOS ------\n"); for(i=0;i<n;i++){ printf("|%i|\nNome: %s\nSexo: %s\nMatricula: %i\nMedia: %.2f\n\n",i+1,A[i].Nome,A[i].Sexo,A[i].Matricula,A[i].Media); } } void getStatus(Aluno A[],int n){ int i; printf("------ STATUS ------\n"); for(i=0;i<n;i++){ printf("|%i|\nNome: %s\nEstado: %s\n",i+1,A[i].Nome,A[i].Status); printf("\n"); } } int menu(){ int escolha; printf("|||| MENU ||||\n"); printf("Escolha uma das opções:\n"); printf("1-> Cadastrar Aluno.\t2-> Cadastros.\n"); printf("3-> Busca por nome.\t4-> Busca por sexo.\n"); printf("5-> Consultar Aprovados/Reprovados/Prova Final.\t6-> Atualizar cadastros.\n"); printf("0-> Sair.\n"); scanf("%i",&escolha); return escolha; } main(){ int i,n,p,esc,esc2=1; char nome[20],sexo[1]; Aluno A[10]; while(esc2!=0){ esc=menu(); switch(esc){ case 0: esc2=0; break; case 1: system("cls"); printf("|||| CADASTRAR ALUNOS ||||\n\n"); printf("Digite a quantidade de alunos a serem cadastrados: "); scanf("%i",&n); printf("\n"); setCadastro(A,n); printf("\nCADASTROS EFETUADOS!\n"); getch(); system("cls"); break; case 2: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastro armazenado!\n"); getch(); }else{ getCadastro(A,n); getch(); } system("cls"); break; case 3: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastrado armazenado!\n"); getch(); }else{ do{ printf("|\t\tPROCURA POR NOME\t\t|\n"); printf("%i CADASTRO(S)\n",n); printf("Digite o nome do aluno: "); scanf("%s",&nome); procuraNome(nome,A,n); if(p>=0){ printf("\n-- %i --\nNome: %s\nMatricula: %i\nMedia: %.2f\n\n",p+1,A[p].Nome,A[p].Matricula,A[p].Media); }else{ printf("|%i|Nome não encontrado!\n",p); } printf("Repetir busca? CONTINUAR<1>/SAIR<2>\n"); scanf("%i",&esc2); system("cls"); }while(esc2!=2); } system("cls"); break; case 4: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastrado armazenado!\n"); getch(); }else{ do{ printf("|\t\tPROCURA POR SEXO\t\t|\n"); printf("%i CADASTRO(S)\n",n); printf("Digite o sexo do aluno <M/F>: "); scanf("%s",&sexo); strupr(sexo); printf("Alunos do sexo |%s|",sexo); for(i=0;i<n;i++){ procuraSexo(sexo[1],A,i,n); } printf("Repetir busca? CONTINUAR<1>/SAIR<2>\n"); scanf("%i",&esc2); system("cls"); }while(esc2!=2); } system("cls"); break; case 5: system("cls"); if(n==0){ printf("ERRO! Nenhum cadastro armazenado!\n"); getch(); }else{ getStatus(A,n); getch(); } system("cls"); break; case 6: system("cls"); printf("|||| CADASTRAR ALUNOS ||||\n\n"); printf("Digite a quantidade de alunos a serem cadastrados: "); scanf("%i",&n); printf("\n"); setCadastro(A,n); printf("\nCADASTROS EFETUADOS!\n"); getch(); system("cls"); break; } } system("cls"); printf("ENCERRADO!"); getch(); return 0; }
Obrigado por visualizar, se possível me ajude!
- 2
-
Tentei fazer um algoritmo usando funções para o problema, mas está lendo incorretamente as matrizes.
#include<stdio.h> #define MAX 10 void setMatriz(int V[MAX][MAX],int maxI,int maxJ,char M){ int i,j; for(i=0;i<maxI;i++){ for(j=0;j<maxJ;j++){ printf("Digite um valor para a posicao %c(%d,%d): ",M,i+1,j+1); scanf("%i",&V[i][j]); } } } void getMatriz(int V[MAX][MAX],int Mi,int Mj,char M){ int i,j; printf("------ %c ------\n",M); for(i=0;i<Mi;i++){ for(j=0;j<Mj;j++){ printf("[%i]\t",V[i][j]); } printf("\n"); } } main(){ int A[5][4],B[5][4],C[5][4]; int i,j; setMatriz(A,5,4,'A'); printf("\n"); setMatriz(B,5,4,'B'); printf("\n"); getMatriz(A,5,4,'A'); printf("\n"); getMatriz(B,5,4,'B'); printf("\n"); for(i=0;i<5;i++){ for(j=0;j<4;j++){ C[i][j]=A[i][j]-B[i][j]; } } getMatriz(C,5,4,'C'); getch (); return 0; }
Sabe por que?
valeu! consegui resolver o exercício, corrigindo o algoritmo anterior com sua ajuda.
-
Olá Colegas!
Estou com um exercício simples, mas o algoritmo está dando um erro que não compreendo. Minha professora não consegue me ajudar.
Exercício: Ler duas matrizes A e B com 20 elementos cada, a partir da subtração dos correspondentes índices de A com os de B criar uma matriz C contendo os resultados.
Mostrar a matriz C.
#include<stdio.h> #include<stdlib.h> main(){ int i,j; int A[5][4],B[5][4],C[5][4]; for(i=1;i<=5;i++){ for(j=1;j<=4;j++){ printf("Digite um valor para a posicao A(%d,%d): ",i,j); scanf("%i",&A[i][j]); } } printf("\n"); for(i=1;i<=5;i++){ for(j=1;j<=4;j++){ printf("Digite um valor para a posicao B(%d,%d): ",i,j); scanf("%i",&B[i][j]); } } printf("\n"); printf("\nMATRIZ C\n"); for(i=1;i<=5;i++){ for(j=1;j<=4;j++){ C[i][j]=A[i][j]-B[i][j]; printf("[ %i ]\t",C[i][j]); } printf("\n"); } getch (); return 0; }
O problema é que quando eu executo o algoritmo ele lê os elementos da matriz A até a posição A[5][2] e já pula para a leitura da matriz B.
Obrigado por visualizar, se possível me ajude!
-
Olá!
Estou com uma atividade para resolver, nela é pedido o seguinte:
---> Implementar uma multiplicação entre duas matrizes, pedir para o usuário digitar o numero de linhas e colunas das duas, no final apresentar o resultado. A entrada dos valores nas matrizes deve ser feita de forma automática ( função rand() ).
A minha dúvida é a seguinte: Eu não sei como o usuário poderá escolher o número de linhas e colunas da matriz.
- 1
-
Spoiler
Algoritmo "VOGAL_CONSOANTE"
Varvogal:vetor [1..5] de caracter
consoante:vetor [1..21] de caracter
i,j,k:inteiro
l:caracterfuncao fvogal (letra:caractere):logico
var
posicao:inteiro
existe:logico
inicioexiste <- falso
para posicao de 1 ate 5 faca
se (letra = vogal[posicao]) então
existe <- verdadeiro
fimse
fimpararetorne existe
fimfuncao
funcao fconsoante (letra:caractere):logico
var
posicao:inteiro
existe:logico
inicioexiste <- falso
para posicao de 1 ate 21 faca
se (letra = consoante[posicao]) então
existe <- verdadeiro
fimse
fimpararetorne existe
fimfuncaoInicio
//Armazenamento nos devidos vetores.
j <- 0
k <- 97
para i de 1 ate 26 facase (k = 97) então
vogal[1] <- carac(k)
senaose (k = 101) então
vogal[2] <- carac(k)
senaose (k = 105) então
vogal[3] <- carac(k)
senaose (k = 111) então
vogal[4] <- carac(k)
senaose (k = 117) então
vogal[5] <- carac(k)
senao
j <- j + 1
consoante[j] <- carac(k)
fimse
fimse
fimse
fimse
fimsek <- k + 1
fimparaescreval("Digite uma letra:")
leia(l)se (fvogal(l) = verdadeiro) então
escreva("É uma vogal.")
senao
se(fconsoante(l) = verdadeiro) então
escreva("É uma consoante.")
senao
escreva("Não é um caractere.")
fimse
fimseFimalgoritmo
MUITO OBRIGADO!!
agora tudo fez sentido, consegui compreender como trabalhar com este tipo de função.
Feliz Natal e Ano novo p você parceiro!
- 1
-
Spoiler
Algoritmo "VOGAL_CONSOANTE"
Var
vogal :vetor [1..5] de caracter
consoante:vetor [1..21] de caracter
i,j,k:inteiro
c:caracterfuncao fvogal (letra:caracter): logico
varexiste,posicao: inteiro
inicio
existe <- 0para posicao de 1 ate 5 faca
se (letra = posicao) então
existe <- 1
fimse
fimparafimfuncao
Inicio
//PREENCHE OS VETORES DE VOGAIS E CONSOANTES
j <- 0
k <- 97
para i de 1 ate 26 faca
se (k = 97) ENTÃO //se letra "a"
vogal[1] <- carac(k)
senao
se (k = 101) ENTÃO //se letra "e"
vogal[2] <- carac(k)
senao
se (k = 105) ENTÃO //se letra "i"
vogal[3] <- carac(k)
senao
se (k = 111) ENTÃO //se letra "o"
vogal[4] <- carac(k)
senao
se (k = 117) ENTÃO //se letra "u"
vogal[5] <- carac(k)
senao //senão, é consoante
j <- j + 1 //atualiza contador de consoantes
consoante[j] <- carac(k)
fimse
fimse
fimse
fimse
fimse
k <- k+1 //atualiza o contador de letras
fimparaescreva("Digite um caractere:")
leia(c)escreva(fvogal(c))
Acho que não estou conseguindo fazer a variável percorrer o vetor, não tenho ideia de como colocar isso numa função.
Porque eu imagino ter de criar um vetor genérico na função, para quando for usar a função eu use o verdadeiro vetor no lugar desse genérico.
-
Tentei muito fazer a função mas acho que ainda não está correta.
Var vogal:vetor [1..5] de caracter consoante:vetor [1..21] de caracter i,j,k:inteiro l:caracter funcao fvogal (x:inteiro): logico var t:inteiro inicio para t de 1 ate 26 faca vogal[t] consoante[t] se (x = vogal[t]) então retorne verdadeiro senao se (x = consoante[t]) então retorne falso fimse fimse fimpara fimfuncao Inicio //Armazenamento nos devidos vetores. j <- 0 k <- 97 para i de 1 ate 26 faca asc(k) se (k = 97) então vogal[1] <- carac(k) senao se (k = 101) então vogal[2] <- carac(k) senao se (k = 105) então vogal[3] <- carac(k) senao se (k = 111) então vogal[4] <- carac(k) senao se (k = 117) então vogal[5] <- carac(k) senao j <- j + 1 consoante[j] <- carac(k) fimse fimse fimse fimse fimse k <- k + 1 fimpara escreva("Digite uma letra:") leia(l) escreval("") se ((fvogal (l) = verdadeiro) então escreva("A letra é uma Vogal.") senao se ((fvogal (l) = falso) então escreva("A letra é uma Consoante.") senao escreva("Não é uma letra.") fimse fimse Fimalgoritmo
-
Pesquisei sobre função.
Fiz outros exercícios usando funções(soma, subtração, multiplicação...), mas não estou conseguindo fazer a função que retorne o valor logico analisando os elementos dos vetores.
-
@Simon Viegas , Muito Obrigado pela atenção.
Eu consegui armazenar os caracteres nos devidos vetores.
Porém estão armazenados em maiúsculo, se tiver que corrigir isto eu dou um jeito.
Var vogal:vetor [1..5] de caracter consoante:vetor [1..21] de caracter i,j,k:inteiro Inicio //Armazenamento nos devidos vetores. j <- 0 k <- 65 para i de 1 ate 26 faca asc(k) se (k = 65) então vogal[1] <- carac(k) senao se (k = 69) então vogal[2] <- carac(k) senao se (k = 73) então vogal[3] <- carac(k) senao se (k = 79) então vogal[4] <- carac(k) senao se (k = 85) então vogal[5] <- carac(k) senao j <- j + 1 consoante[j] <- carac(k) fimse fimse fimse fimse fimse k <- k + 1 fimpara Fimalgoritmo
-
Olá pessoal, meu professor me passou esta tarefa e não estou conseguindo resolver, se alguém me ajudar agradeço.
Escreva um algoritmo em pseudocódigo que armazene as letras vogais em
um vetor chamado vogal, as consoantes em um vetor chamado consoante. Em
seguida crie duas funções do tipo lógico (as quais vão percorrer os vetores e
comparar com a letra digitada, retornando V ou F) para saber se a letra é vogal
ou consoante. Ao final deverá ser impresso: vogal, consoante ou não é uma
letra (dependendo da letra digitada pelo usuário).Eu fiz um pouco mas não estou sabendo como armazenar as vogais e as consoantes nos seu devido vetor. Estou travado no algoritmo
Algoritmo "VOGAL_CONSOANTE" Var vogal:vetor [1..5] de caracter consoante:vetor [1..21] de caracter i:inteiro funcao letra(x:inteiro):logico var l:caractere inicio escolha l se fimescolha se fimse fimfuncao Inicio Fimalgoritmo
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais
Como inserir nomes em um campo com pesquisa no banco de dados
em Programação - outros
Postado
Olá! Estou com a seguinte dúvida...
Estou passando para a View "Create" um objeto do tipo SalesRecordFormView e nele contém uma List com todos os Sellers (Vendedores) do meu banco de dados.
Para fazer esta Sale (Venda) preciso que o input do Seller seja o nome de um vendedor que está na minha List.
Tem como mostrar abaixo do (ou no próprio campo) input o nome do vendedor, que está na List, enquanto eu digito?
Ou seja, ele pesquisa o nome na List de acordo com o que eu digito.