Ir para conteúdo
Fórum Script Brasil

Pesquisar na Comunidade

Mostrando resultados para as tags ''Funções''.

  • 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. Bom galera, como dito anteriormente, comecei agora o conteúdo de funções, porém não estou sabendo desenvolver uma atividade proposta. Ela é a seguinte: Faça uma função chamada MULTIPLO que recebe como parâmetro dois números inteiros e retorna o 1, se o primeiro número for múltiplo do segundo, número e o 0 caso contrário. Exemplo de utilização da função: MULTIPLO(35,5) Retornará o valor 1 MULTIPLO(35,2) Retornará o valor 0 Depois faça um programa que lê dois números inteiros e escreve se o primeiro é múltiplo do segundo, utilizando a função MULTIPLO. Até agora, tenho isso, mas sei que está errado. Poderiam me ajudar? int multiplo (int num1, int num2) { int multi; if (num1%num2 == 0) printf("1"); if (num1%num2 != 0) printf("0"); return multi; }
  2. Olá, estou com um exercício da faculdade que não consegui resolver, é um exercício onde preciso utilizar ponteiro para ponteiro em uma struct mas estou muito perdido na sintaxe. o exercício é o seguinte: Faça uma struct com dois campos, uma string para nome e um int para armazenar um número inteiro. Na main peça para o usuário digitar o tamanho do array da struct. Crie uma função para alocar dinamicamente esse array de struct e ler os dados digitados pelo usuário. Faça uma função que verifica os números pares digitados pelo usuário na struct e se o número for par dentro do if se chama outra função para manipular esse número par passando toda a struct, essa função deve receber a struct mas manipular apenas o número par dela e dividi-lo por 2 alterando a struct original. No final o programa deve imprimir na main o array dos números. Eu consegui fazer alocando na própria main, mas dessa forma com uma função separada não consegui. Vou deixar meu código, que deve ter vários erros mas serve pra ilustrar bem o que o exercício pede. #include <stdio.h> #include <stdlib.h> #include <locale.h> struct dados{ char nome[5]; int num; }; typedef struct dados dado; void manipula_um_par(dado **q){ **q.num=**q.num/2; } void manipula_pares(dado **q,int *x){ int i; for(i=0;i<*x;i++){ if(*(*q[i]).num%2==0){ manipula_um_par(&q[i]); } } } void define_structs(int *n, dado *q){ dado *p; int i; p = (dado *) malloc(*n*sizeof(dado)); printf("\n"); for(i=0;i<*n;i++){ printf("Digite o %dº nome: ",i+1); gets(p[i].nome); setbuf(stdin,NULL); printf("Digite o %dº número: ",i+1); scanf("%d", &p[i].num); setbuf(stdin,NULL); printf("\n"); } q=&p; } int main(){ setlocale(LC_ALL, "Portuguese_Brazil"); int n, i; dado **q; printf("Digite o tamanho do vetor de struct: "); scanf("%d",&n); setbuf(stdin,NULL); q = (dado *) malloc(n*sizeof(dado)); define_structs(&n,q); manipula_pares(q,&n); for(i=0;i<n;i++){ printf("%d\n", **q[i].num); } printf("\n"); return 0; }
  3. Escreva um programa que receba a data de nascimento dia mês e ano e o nome de um numero n de pessoas sendo n informado pelo usuário. Para cada data de nascimento lida determine a diferença de idade entre você e a pessoa, exiba uma mensagem informando se ela é mais velha ou Mais nova, e exiba a diferença de idade no formato ano mês e dia. Por fim exiba os nomes e as idade em ordens crescentes incluindo você.
  4. Boa Tarde a todos, gostaria de pedir a vocês que me ajudem pois estou desenvolvendo um trabalho para faculdade na qual tenho que fazer um sistema que utiliza struct e funções. A minha dificuldade está na parte que tenho que fazer uma função que realize a venda. Trecho do texto a seguir. 4. Realizar uma venda: são fornecidos os códigos dos produtos e o sistema imprime na tela os nomes dos produtos, seus preços e o total; (para realizar uma venda é necessário ver se o produto tem o estoque necessário para a venda). Minha dificuldade está na parte que tenho que passa os códigos do produtos, exibir seus nomes, preços e total da compra. Até cheguei a fazer essa opção no meu código mais o jeito que fiz funciona apenas de 1 em 1, aí todo hora preciso ficar voltando na função para efetuar outras vendas. Gostaria de fazer isso de uma vez só. Se alguém estiver disposto a me ajudar ficaria muito grato. Estou usando Dev C++ versão 5.10 para a construção desse sistema. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ #include<stdio.h> #include<stdlib.h> #include<locale.h> /* Autor: Diego Disciplina: Linguagem de programação 1 */ //CONSTANTE PARA CONTROLAR QUANTIDADE DE DADOS #define QTREG 30 //ESTRUTURA UTILIZADA PARA CADASTRAR PRODUTOS typedef struct{ int codigo; char nome[30]; int quantidade; float preço; }REGPRODUTO; //CRIA VARIAVEL DO TIPO regproduto REGPRODUTO produto[QTREG]; //VARIAVEIS GLOBAIS float caixaAtual = 800.00; //CABEÇALHO DAS FUNÇÕES QUE SERÃO USADAS //CABEÇALHO DA FUNÇÃO INSERIR UM PRODUTO NO ESTOQUE int cadastrar(); //CABEÇALHO DA FUNÇÃO AUMENTAR O ESTOQUE DE UM PRODUTO void alterarEstoque(int pCodgio, int pQuantidade); //CABEÇALHO DA FUNÇÃO MODIFICAR O PREÇO DE UM PRODUTO void modificarPreco(int pCodigo, float pPreco); //CABEÇALHO DA FUNÇÃO REALIZAR VENDA float venda(); //CABEÇALHO DA FUNÇÃO CONSULTAR O ESTOQUE DOS PRODUTOS void listaProduto(int pQtProduto); //CABEÇALHO DA FUNÇÃO CONSULTAR O SALDO DO CAIXA void consultarSaldo(); int main(void){ int op = 0; setlocale(LC_ALL,"Portuguese"); while(op != 7){ printf("\n\n\t** Mercadinho - Sistema de gerenciamento de mercadoria 2015 **\n\n\n"); printf("MENU\n\n1 - Cadastrar Produto\n2 - Atualizar Estoque\n3 - Alterar preço produto"); printf("\n4 - Realizar venda\n5 - Consultar estoque\n6 - Consultar saldo do caixa\n7 - Sair\n"); scanf("%d",&op); system("cls"); switch(op){ case 1://OPÇÃO CADASTRAR PRODUTO int qtProduto; qtProduto = cadastrar(); break; case 2:{//OPÇÃO ATUALIZAR ESTOQUE int pCodigo, pQuantidade; printf("Digite o código do produto que deseja atualizar o estoque:"); scanf("%d",&pCodigo); printf("Deseja alterar quantidade do produto: %s - quantidade: %d \n",produto[pCodigo].nome,produto[pCodigo].quantidade); printf("Nova quantidade:"); scanf("%d",&pQuantidade); fflush(stdin); system("pause"); alterarEstoque(pCodigo, pQuantidade); } break; case 3:{//OPÇÃO ALTERAR PREÇO DO PRODUTO int pCodigo; float pPreco; printf("Digite o código do produto que deseja modificar o preço:"); scanf("%d",&pCodigo); printf("Deseja modificar o preço do produto: %s - preço: %0.2f \n",produto[pCodigo].nome,produto[pCodigo].preço); printf("Novo preço:"); scanf("%f",&pPreco); fflush(stdin); system("pause"); modificarPreco(pCodigo, pPreco); } break; case 4://OPÇÃO DE REALIZAR VENDA int pCodigo; float lucro; lucro = venda(); caixaAtual = caixaAtual + lucro; break; case 5://OPÇÃO DE LISTAR PRODUTOS listaProduto(qtProduto); break; case 6://CONSULTAR SALDO NO CAIXA consultarSaldo(); break; case 7://OPÇÃO SAIR DO PROGRAMA exit; break; default:// EXIBI MENSAGEM DE OPÇÃO INVALIDA CASO DIGITE UM NUMERO QUE NÃO TENHA NO MENU printf("Opção inválida"); break; } } system("pause"); return 0; } //CORPO DA FUNÇÕES //FUNÇÃO INSERIR UM PRODUTO NO ESTOQUE int cadastrar(){ char opSub; int cont=0,qtProdutoCad=0; float compra; do{ produto[cont].codigo = cont; fflush(stdin); printf("Digite o nome do produto:"); gets(produto[cont].nome); printf("Digite a quantidade:"); scanf("%d",&produto[cont].quantidade); fflush(stdin); printf("Digite o preço:"); scanf("%f",&produto[cont].preço); fflush(stdin); caixaAtual = caixaAtual - produto[cont].preço; qtProdutoCad = qtProdutoCad + cont; cont++; printf("Deseja cadastrar um novo produto sim(s) ou não(n)?"); scanf("%c",&opSub); }while(opSub == 's' or opSub == 'S'); return qtProdutoCad; } //FUNÇÃO AUMENTAR O ESTOQUE DE UM PRODUTO void alterarEstoque(int pCodigo, int pQuantidade){ produto[pCodigo].quantidade = pQuantidade; } //FUNÇÃO MODIFICAR O PREÇO DE UM PRODUTO void modificarPreco(int pCodigo, float pPreco){ produto[pCodigo].preço = pPreco; } //FUNÇÃO REALIZA VENDA float venda(){ int pCodigo; float lucro; printf("Informe o código do produto"); scanf("%d",&pCodigo); if(produto[pCodigo].quantidade < 0){ printf("Produto indisponivel"); }else{ printf("\t %s - \t %1.2f",produto[pCodigo].nome,produto[pCodigo].preço); lucro = lucro + produto[pCodigo].preço; } printf("\t\t\t Total: %1.2f",lucro); return lucro; } //FUNÇÃO CONSULTAR SALDO void consultarSaldo(){ printf("Saldo atual em caixa: %1.2f",caixaAtual); } //FUNÇÃO CONSULTAR O ESTOQUE DOS PRODUTOS void listaProduto(int pQtProduto){ int i, qtProduto; qtProduto = pQtProduto; for(i=0; i<qtProduto; i++){ printf("\tCódigo - %d \tNome - %s \tQuantidade - %d \n",produto.codigo,produto.nome,produto.quantidade); } }
  5. E ai gente, desculpa incomodar mas me ajudem, eu não sei como tirar o none do codico, n importa oque eu faça ele sempre fica ali!
  6. Olá a todos Segue a minha contribuição: www.linguagemc.pt Esta página tem dezenas de exercícios de programação, todos resolvidos em Linguagem C, e com novas atualizações constantes. Espero que vos seja útil. Abraço
  7. Por que o e.preventDefault da função salvarLocal(e) não está sendo executado ? Por que minha função apagar não está funcionando ? E também não estou conseguindo salvar no localStorage.. Não consigo resolver isso.. código html: <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"/> <title>teste</title> </head> <body> <form id="formulario"> <label for="usuario">Usuario:</label> <input type="text" name="tusuario" id="usuario"/><br/> <label for="time">Time:</label> <input type="text" name="ttime" id="time"/><br/> <label for="valor">Valor:</label> <input type="text" name="tvalor" id="valor"/><br/> <label for="premio">Premio:</label> <input type="text" name="tpremio" id="premio"/><br/> <input type="submit" value="Concluir"/> <input type="button" value="apagar" id="apagar"/> </form> <script src="js.js"></script> </body> </html> codigo js: document.getElementById('formulario').addEventListener('submit', salvarLocal); document.getElementById('apagar').addEventListener('onClick' apagar) var usuario = document.getElementById('usuario').value; var time = document.getElementById('time').value; var valor = document.getElementById('valor').value; var premio = document.getElementById('premio').value; function apagar(){ localStorage.clear(); } function salvarLocal(e){ localStorage.setItem("usuario", usuario); localStorage.setItem("time", time); localStorage.setItem("valor", valor); localStorage.setItem("premio", premio); e.preventDefault(); }
  8. Estou realizando um trabalho para faculdade e estou com dúvidas na utilização de structs e ponteiros, está aparecendo erros como o seguinte: warning: implicit declaration of function 'CadCurso' [-Wimplicit-function-declaration] warning: implicit declaration of function 'CadTurma' [-Wimplicit-function-declaration] Não sei o porque desses erros aparecem no case se eu estou chamando as variaveis dos cadastros e listagens. #include <stdio.h> #include <stdlib.h> struct Curso { int codigo; char nome[50]; }; struct Turma { int codigo; char nome[50]; int codigoCurso; }; struct Disciplina { int codigo; char nome[50]; int codigoTurma; }; struct Aluno { int matricula; char nome[50]; int codigoDisciplina; }; int Opcao() { int valor = 0; printf("\n-------------------------------------------------------"); printf("\n 1-Cadastrar Curso 2-Cadastrar Turma "); printf("\n 3-Cadastrar Disciplina 4-Cadastrar Aluno "); printf("\n 5-Listar Turmas 6-Listar Disciplinas "); printf("\n 7-Listar Aluno 8-Listar Cursos "); printf("\n 9-Sair "); printf("\n-----------------------------------------------------\n"); scanf("%d",&valor); return (valor); } //aqui comeca o main int main() { int opc=99; int TOTAL = 0; int qtdCursos = 0; int qtdTurmas = 0; int qtdDisciplinas = 0; int qtdAlunos = 0; struct Curso * cursos; struct Turma * turmas; struct Disciplina * disciplinas; struct Aluno * alunos; printf("\nInforme o numero de cadastros:"); scanf("%d", &TOTAL); cursos = (struct Curso*)malloc(sizeof(struct Curso) * TOTAL); turmas = (struct Turma*)malloc(sizeof(struct Turma) * TOTAL); disciplinas = (struct Disciplina*)malloc(sizeof(struct Disciplina) * TOTAL); alunos = (struct Aluno*)malloc(sizeof(struct Aluno) * TOTAL); while (opc > 0){ opc = Opcao(); switch (opc){ case 1: CadCurso(cursos, TOTAL); break; case 2: if(qtdCursos < 1){ printf("não existe um curso cadastrado.Cadastre-o primeiro!"); } else{ qtdTurmas++; CadTurma(turmas, cursos, TOTAL); break; case 3: if(qtdTurmas < 1){ printf("não existe uma turma cadastrada.Cadastre-a primeiro!"); break; } else{ qtdDisciplinas++; CadDisciplina(cursos,turmas,disciplinas,TOTAL,qtdTurmas); break; case 4: if(qtdDisciplinas < 1){ printf("não existe uma disciplina cadastrada.Cadastre-a primeiro!"); break; }else{ qtdAlunos++; CadAluno(alunos,cursos,turmas,disciplinas,TOTAL); break; case 5: ListarTurmas(cursos,turmas,TOTAL); break; case 6: ListarDisciplinas(cursos,disciplinas,turmas,TOTAL); break; case 7: ListarAluno(alunos,turmas,disciplinas,cursos,TOTAL); break; case 8: qtdCursos++; ListarCursos(cursos,TOTAL,qtdCursos); break; case 9: opc = 0; break; default : break; } } free(cursos); free(turmas); free(disciplinas); free(alunos); return 0; } //acabou o main void CadCurso(struct Curso * cursos, int TOTAL) { int x = 0; for(; x < TOTAL; x++) { printf("\nInforme o codigo do curso: "); scanf("%d", &cursos[x].codigo); printf("\nInforme o nome do curso: "); scanf("%s", cursos[x].nome); } } void CadTurma(struct Curso * cursos, struct Turma * turmas, int TOTAL) { int x = 0; for(; x< TOTAL; x++) { printf("\n Informe o codigo do curso %d: ", cursos[x].codigo); printf("\n Informe o codigo da turma: "); scanf("%d", &turmas[x].codigo); printf("Informe o nome da turma: "); scanf("%s", &turmas[x].nome); } } void CadDisciplina(struct Disciplina * disciplinas,struct Turma * turmas, struct Curso * cursos, int TOTAL,int qtdTurmas) { if(qtdTurmas < 1 ) { printf( "Não existe turma(s) cadastradas no sistema !\n" ); }else{ int x = 0; for(; x< TOTAL; x++) { printf("\n Informe o codigo do curso %d : ", cursos[x].codigo); printf("\n Informe o codigo da turma %s: "); scanf("%d", &turmas[x].codigo); printf("\n Informe o codigo da disciplina: "); scanf("%d", &disciplinas[x].codigo); printf("Informe o nome da disciplina: "); scanf("%s",&disciplinas[x].nome); } qtdTurmas++; } void CadAluno(struct Aluno * alunos, struct Turma * turmas, struct Disciplina * disciplinas, struct Curso * cursos, int TOTAL) { int x = 0; for (;x < TOTAL;x++){ printf("\n Informe a matricula do aluno:"); scanf("%d",&alunos[x].matricula); printf("\n Informe o nome do aluno:"); scanf("%s",&alunos[x].nome); printf("\n Informe o curso que o aluno esta inserido:"); scanf("%d",&cursos[x].codigo); printf("\n Informe as disciplinas que o aluno cursa:"); int i = 0; for(; i < 3;i++){ printf("\n Codigo da disciplina:"); scanf("%d",&disciplinas.codigo); printf("\n Nome da disciplina:"); scanf("%s",&disciplinas.nome); } } } void ListarAluno( struct Aluno * alunos,struct Disciplina * disciplinas, struct Turma * turmas,struct Curso * cursos, int qtdAlunos) { if(qtdAlunos < 1 ) { printf( "Não existe aluno(s) cadastrados no sistema !\n" ); }else{ int matriculaAluno; printf( "\n Matricula do aluno: " ); scanf( "%d",&matriculaAluno); int i = 0; for(; i < qtdAlunos; i++ ) if( alunos.matricula == matriculaAluno ) { printf("Matricula: %d | Nome: %s\n", alunos.matricula, alunos.nome ); printf("__________________________________________________"); printf("Disciplina:\n"); printf("Codigo da disciplina: %d \n", disciplinas.codigo); printf("Nome do aluno: %s \n", disciplinas.nome); printf("__________________________________________________"); printf("Turma:\n"); printf("Codigo da Turma: %d \n", turmas.codigo); printf("Nome da turma: %s \n", turmas.nome); printf("__________________________________________________"); printf("Curso:\n"); printf("Codigo do Curso: %d \n", cursos.codigo); printf("Nome do Curso %s \n", cursos.nome); printf("__________________________________________________"); printf("\n"); } } } void ListarTurmas(struct Curso * cursos,struct Turma * turmas, int qtdTurmas) { //verificando se a quantidade de turmas é menor que 0 if(qtdTurmas < 1 ){ printf( "Não existe turmas cadastradas!\n" ); } //lendo o codigo do curso int codigoCurso; printf( "\n Código do Curso: " ); scanf( "%d", &codigoCurso); //listando turmas int i = 0; for( i; i < qtdTurmas; i++ ) if( turmas.codigoCurso == codigoCurso ){ printf("Código da Turma: %d \n", turmas.codigo); printf("Nome da turma: %s \n", turmas.nome); printf("\n"); } } void ListarDisciplinas(struct Curso * cursos,struct Turma * turmas,struct Disciplina * disciplinas, int qtdDisciplinas) { int codigoCurso = 0; printf( "\n Código do Curso: " ); scanf( "%d", &codigoCurso); if(qtdDisciplinas < 1){ printf( "Não existe disciplinas!\n" ); } int i = 0; int codigoTurma = 0; for(; i < qtdDisciplinas; i++ ) if( disciplinas.codigoTurma == codigoTurma ){ printf("Código da Turma: %d \n", disciplinas.codigo); printf("Nome da turma: %s \n", disciplinas.nome); } } void ListarCursos(struct Curso * cursos,int qtdCursos) { int codigoCurso; printf( "\n Código do Curso: " ); scanf( "%d", &codigoCurso); if(qtdCursos < 1){ printf( "Não existe cursos cadastrados!\n" ); } int i = 0; for(; i < qtdCursos; i++ ) if(cursos.codigo == codigoCurso ){ printf("Código do Curso: %d \n", cursos.codigo); printf("Nome do curso: %s \n", cursos.nome); } } }
  9. #include <stdio.h> int palindromo (int num){ /*Essa função acha o reverso do número e o retorna para a função principal*/ int rev; while(num){ rev = (num%10 + rev)*10; num = num/10; } return (rev); } int main (void){ /*Na função main, o valor é inserido pelo usuário e o programa chama a função palindromo para determinar seu reverso. Depois a função main compara se o reverso é igual ao numero e se isso for verdade retorna se ele é palindromo.*/ int pal,num; printf("Informe um valor: "); scanf("%d",&num); //printf("%d",num); pal = palindromo(num)/10; if (pal==num) printf("O numero %d é palindromo!!",pal); else printf("O numero %d não é palindromo!!",pal); return 0; system ("pause"); } O que está em negrito é a adaptação que eu tive que fazer. Se executado o código, sem atribuir a função palíndromo dividido por 10 à uma variável, o alor retornado da função possuía sempre uma casa decimal a mais, ou seja, se o usuário digita 121 retornaria que o valor 1210 não é palíndromo. Gostaria da ajuda do pessoal para saber porque o número está retornando multiplicado por 10 e não em seu valor correto.
  10. 1. Faça um programa que leia a quantidade de faltas do aluno (F), armazene a quantidade máxima de aulas em uma constante (MAX = 80 aulas) e 4 valores (A,B,C,D) e faça a média entre os 4 valores para calcular a média. Caso o valor de F esteja acima de 25% de MAX, armazene a mensagem “Reprovado por Faltas!”, caso o valor da média esteja entre 1 e 3 e F seja até 25% de MAX, armazene a mensagem “Reprovado por Nota!”, caso o valor da média esteja entre 3 e 5.9 armazene a mensagem “Recuperação!” e caso a média seja acima de 6.0, “Aprovado!”. Estou parada agora na parte que preciso chamar as funções para exibir na tela: Me ajudem!!! #include "iostream" #include "string.h" #include "cstdlib" #include "conio.h" #include "math.h" #define MAX 80 using namespace std; double NumFaltas() { // Numero de faltas double f; // variavel de saida seria um parametro interno cout << "Digite total de faltas:"; cin >> f; return f; } string analise (int faltas){ string mes; if ((MAX * 0.25) > faltas) mes = "Reprovado por falta"; } double NA() { // função para ler nota 1 double a; // variavel de saida seria um parametro interno cout << "Digite nota p1:"; cin >> a; return a; } double NB() { // função para ler nota 2 double b; // variavel de saida seria um parametro interno cout << "Digite nota p2:"; cin >> b; return b; } double NC() { // função para ler nota 3 double c; // variavel de saida seria um parametro interno cout << "Digite nota p3:"; cin >> c; return c; } double ND() { // função para ler nota 4 double d; // variavel de saida seria um parametro interno cout << "Digite nota p4:"; cin >> d; return d; } double media (double a, double b, double c, double d ) { double mediatotal; mediatotal = (a+b+c+d)/2; return mediatotal; } string aprovreprov (double med){ string msg; if (med < 3) msg = "Reprovado por nota"; else if (med >= 3 || med <= 5.9) msg = "Aluno de recuperação"; else if (med > 5.0) msg= "Aluno aprovado"; } int resultados(double a, double b, double c, double d, double mediatotal, double fa, double mfinal,string msg, string mes ) { system("cls"); cout << "\n *** Exibição de Resultados *** \n"; cout << "\n *** Nota P1:" << a; cout << "\n *** Nota P2:" << b; cout << "\n *** Nota P3:" << c; cout << "\n *** Nota P4:" << d ; cout << "\n *** Média Final:" << mediatotal; cout << "\n *** Numero de Faltas:" << fa; if (mes != "Reprovado por falta") { cout << "\n *** Resultado:" << msg; } cout << "\n *** FIM DA EXIBIÇÃO DE RESULTADOS *** \n"; system("pause"); return 0;} int main () { setlocale (LC_ALL,"Portuguese"); // configura idioma double a, b, c, d, f, mediatotal; string medi, msg; int exibir, mes; int tecla = -1; // laço de controle do menu while (tecla != 4) { system("cls"); cout << "\n*** Controle de Menu *** \n"; cout << "\n*** 1 - ler lados *** \n"; cout << "\n*** 2 - Calcular *** \n"; cout << "\n*** 3 - Exibir resultados *** \n"; cout << "\n*** 4 - Sair do programa *** \n"; cout << "\n*** Item> "; cin >> tecla; if (tecla == 1) { f = NumFaltas(); a = NA(); b = NB(); c = NC(); d = ND(); } else if (tecla == 2) { medi = analise(mes); if (medi != "Reprovado por falta"){ mediatotal = media(a,b,c,d); msg = aprovreprov(med);} system("pause"); return 0;}
  11. HugoGuedes

    Funções em C

    Ola pessoal, primeiro brigado a quem responder.. Estou fazendo estrutura de dados na faculdade, como não sou muito bom em c, vim recorrer a quem conhece. O trabalho é o seguinte Desenvolver um programa em C com menu para Cadastrar Clientes em um vetor capaz de armazenar 50 clientes, cada estrutura de clientes contem CPF, NOME e TELEFONE, não são permitidos CPF duplicados Listar na tela os clientes em ordem crescente de nome, e também listar em ordem crescente de CPF Pesquisar por nome ate o índice em que o vetor foi preenchido, pois deve haver dois clientes com o mesmo nome, achado mostrar NOME e CPF Pesquisar por CPF, ao encontrar a primeira e suposta unica ocorrência mostra o nome e termina a busca. OBS: eu fiz algumas coisas so que dentro da main(), o professor pediu em funções passando por ponteiros. DUVIDAS: posso criar um vetor de estruct fora da main? Como posso, referenciar a minha struct em uma função tipo no cadastrar? Abaixo Segue o que eu consegui fazer. #include<stdio.h> #include<stdlib.h> #include<string.h> int main(){ //Estrutura Clientes struct Clientes{ char nome[255]; int cpf; char telefone[25]; }; // Vetor da estrutura de clientes struct Clientes clientes [50]; int opcao, i; //Exibição do Menu while(i < 1){ //Menu printf("\nEscolha a opcao desejada |\n 1 - Cadastrar Cliente :\n 2 - Buscar Cliente :\n 3 - Listar Clientes |: "); scanf("%d", &opcao); //Escolha do Menu //Cadastro de clientes if(opcao == 1){ //Cadastro de Clientes int cont=0,c=0; while(c < 1){ printf("\nCadastrar Clientes !!!\n"); fflush ( stdin ); printf ( "\n Nome: " ); scanf ( "%s", &clientes [ cont ].nome ); printf ( "\n CPF: " ); scanf ( "%d", &clientes [ cont ].cpf ); printf ( "\nTELEFONE: " ); scanf ( "%s", &clientes [ cont ].telefone ); printf("Deseja Fazer um novo cadastrato: 1 - Nao : 0 - Sim"); scanf("%d", &c); cont++; } } // Busca Clientes if (opcao == 2){ int cont=0,c=0; char busca[255]; printf ( "\n Digite o nome do cliente a ser buscado: \n" ); // Exibindo printf ( "Cliente: " );// Exibindo scanf ( "%s", &busca );// Busca while(c < 1){ while(cont < 50){ if (strcmp ( busca, clientes [ cont ].nome ) == 0) { printf("\n %s", clientes [ cont ].nome); }cont++; } printf("Deseja Fazer uma nova busca: 1 - Nao : 0 - Sim"); scanf("%d", &c); } } //Listar Cliente if(opcao == 3){ int list; printf("\nListar Cliente em |1 - CPF : ordem crescente :: 2 - NOME : ordem crescente|: "); scanf("%d", &list); if(list == 1){ // Ordenando Vetor em CPF int i=0, j=0; char VeTempo[50]; for(i;i<50-1;i++){ for(j;j<50-(i+1);j++){ if(clientes[j].cpf > clientes[j+1].cpf){ VeTempo[j]= clientes[j].cpf; clientes[j].cpf = clientes[j+1].cpf; clientes[j+1].cpf = VeTempo[j]; } } } } } //Fim do while Menu printf("\n Deseja Fazer outra operacao 1 - Sair : 0 - Continuar: "); scanf("%d", &i); // ------------------------ } } MUITO OBRIGADO MESMO A QUEM ME AJUDAR.
  12. Olá estou iniciando a programar em C++ e andei procurando alguns exercícios sobre funções e não achei o que procurava, pra quem já entende do assunto pode me ajudar dando alguns exemplos de tarefas simples realizadas com C++ usando funções e outras variáveis além da INT.
  13. meu codigo esta dando alguns erros, alguém pode me dar uma ajuda. segue em anexo os erros, se alguém quiser me ajudar... vai me ajudar demais.
  14. Johnnyje21

    Menu Bancário

    Boa noite pessoal , estou com um projeto da faculdade aonde preciso fazer um sistema que simule um sistema de caixa eletrônico . Estou com problemas para fazer as comparações do tipo string para verificar a resposta digitada pelo usuário . Se alguém puder me auxiliar obrigado . else { printf("\n NECESSÁRIO CADASTRO !!"); cadastro(); } } int cadastro() { char nome[30],endereco[20],cidade[10],estado[2],cpf[12],rg[13],data_nasc[15],tempo_Serv[6]; float Saldo_Inic=0,Salario=0; printf("\n Digite o seu nome : "); scanf("%c",&nome); printf("\n Digite seu Endereco : Rua -------- numero : ------ \n "); scanf("%c",&endereco); printf("\n Digite a sua cidade : "); scanf("%c",&cidade); printf("\n Digite o ano de seu nascimento : "); scanf("%c",&data_nasc); printf("\n Digite seu cpf : "); scanf("%c",&cpf); printf("\n Digite seu RG : "); scanf("%c",&rg); printf("\n Digite o seu salário : "); scanf("%f",&Salario); printf("\n Digite o seu tempo de serviço : anos/meses "); scanf("%c",&tempo_Serv); }
  15. Eu tenho que criar um programa que resolva esse problema: "Faça uma função que receba um vetor X de 30 elementos inteiros, por parâmetro, e retorne dois vetores A e B. O vetor A deve conter os elementos pares e o vetor B, os elementos ímpares." Meu código: #include <stdio.h> #define TAM 6 void geraVetor(int[], int[], int[], int*, int*); /*Recebe X, A e B*/ int main() { int X[TAM], A[30], B[30], i, tamA=0, tamB=0; //Lendo o vetor X. for(i=0; i<TAM; i++){ printf("Entre com o valor %d: ", i+1); scanf("%d", &X[i]); } geraVetor(X, A, B, &tamA, &tamB); printf("Vetor X:\n\n"); for(i=0; i<TAM; i++) printf("%d\n", X[i]); printf("\nVetor A:\n\n"); for(i=0; i<tamA; i++) printf("%d\n", A[i]); printf("\nVetor B:\n\n"); for(i=0; i<tamB; i++) printf("%d\n", B[i]); return 0; } void geraVetor(int X[], int A[], int B[], int *tamA, int *tamB){ int i; for(i=0; i<TAM; i++){ if(X[i]%2 == 0){ A[*tamA] = X[i]; *tamA++; } else{ B[*tamB] = X[i]; *tamB++; } } } Quando eu vou imprimir os arrays A e B o programa só deixa um espaço vazio. OBS: Ele imprime os valores de X. Se alguém conseguir achar os meus erros, eu agradeço muito!
  16. Galera achei gostaria de compartilhar esse E-book com vocês... Pode ser útil! Link de Download: http://royallogic.com/ebookphp/
  17. Boa noite, sou iniciante em orientação a objetos , estou tentando criar um menu simples para uma calculadora usando classes é me deparei com a seguinte questão,como instanciar a função a seguir ? -------------------------------------------------------- ------ (Arquivo.h) grafico.h ------------------------------------------------------------ #ifndef GRAFICO_H_INCLUDED #define GRAFICO_H_INCLUDED class grafico_imprime{ //class criada em grafico.h public: int numero_indice; //Numero do indice. void menu(int menu_indice); //Função que imprime o menu. }; #endif // GRAFICO_H_INCLUDED -------------------------------------------------------------- (Arquivo.cpp) grafico.cpp --------------------------------------------------------- #include "grafico.h" grafico_imprime::menu(int menu_indice){ //Função responsavel em imprimir o menu. switch(menu_indice){ //Switch usado para fazer a relação do 'numero_indice' é imprimir na tela a opção desejada. case 1: cout << "test 1"; break; case 2: cout << "test 2"; default: cout << "test 3"; } } ------------------------------------------------------------ (Principal.cpp) main.cpp ------------------------------------------------------------ #include <iostream> #include <stdlib.h> #include "grafico.h" // Biblioteca que conterá as Class e funções para imprimir menus,resultados etc. using namespace std; int main() { grafico_imprime menu_inicial; // Cria o objeto. cin >> menu_inicial.numero_indice; // Atribui um numero ao indice. // Duvida Aqui !!! Na chamada da função. system("pause"); return 0; } A minha ideia era criar um objeto é uma função que seria responsável em rodar a função switch que esta contida na função 'menu' sem a necessidade de escrever qualquer coisa diretamente na função principal. Ainda não entendo muito bem a lógica envolvida em OO, se alguém tiver a resolução para esse problema por favor comente a maneira que ache mas eficiente para resolver o mesmo.
  18. Olá, antes de mais nada gostaria de dizer obrigado a quem responder minha dúvida. Bom eu estou aprendendo a linguagem C, e em um dos livros que estou lendo, vi um código que utiliza a recursividade para inverter uma string: #include <stdio.h> #define SIZE 80 void reverse( const char * const sPtr ); // prototype int main( void ) { char sentence[ SIZE ]; // create char array puts( "Enter a line of text:" ); // use fgets to read line of text fgets( sentence, SIZE, stdin ); puts( "\nThe line printed backward is:" ); reverse( sentence ); } // end main // recursively outputs characters in string in reverse order void reverse( const char * const sPtr ) { // if end of the string if ( '\0' == sPtr[ 0 ] ) { // base case return; } // end if else { // if not end of the string reverse( &sPtr[ 1 ] ); // recursion step putchar( sPtr[ 0 ] ); // use putchar to display character } // end else } // end function reverse Código retirado do livro: C - How to Program 7th edition, página: 347, autor: Deitel. Minha dúvida é a seguinte: como a função "reverse" funciona? Algúem pode me explicar detalhadamente? Porque não consegui entender como ela inverte um string, sendo que na linha: 21, a chamada "reverse" é chamada e recebe como argumento o endereço de memória do segundo espaço do array "sentence", e eu imagino, como ela inverte um string sendo que na próxima chamada recursiva, ela vai receber novamente "o endereço de memória do segundo espaço do array(sentence)". Desde já agradeço a qualquer um que se comprometer a sanar minha dúvida.
  19. Este simulador de farol criado em linguagem c é uma boa alternativa para um trabalho acadêmico final. Não há nada de complicado no código que usa funções com parâmetros, onde os valores são colocados na chamada. Simples e funcional, este programa impressiona pela simulação tão próxima de um farol de rua, os tempos podem ser controlados a vontade pelo programador, já os mais experientes podem fazer alterações nas janelas para obterem outros tamanhos e formas. Código indcado a iniciantes avançados em c.
  20. Bom dia galera! Preciso de um auxílio pra resolver essa situação problema que me deparei no fim do semestre, acredito que para os grandes gurus da linguagem C isso seja tranquilo, porém para mim está como um túnel sem luz no final! Peço auxílio por favor! Os links são dos arquivos de texto arquivo dados_coletados.txt (https://drive.google.com/file/d/0B7IzC05oTXBoMjVkLWZaNHBNSW8/view?usp=sharing) que contém os dados coletados pelo grupo que observou o trecho escolhido para o pedágio e o arquivo analise_pedagio.txt (https://drive.google.com/file/d/0B7IzC05oTXBoMjdBdFY5Tl9UUlE/view?usp=sharing) que contém o resultado esperado para o programa a ser desenvolvido. Desde já agradeço muito a ajuda pra esse caso que preciso solucionar até dia 16 de novembro!
  21. Em linguagem c temos três indicadores para deslocamento de posições, que são, as funções fseek, ftell e rewind, todas são do cabeçalho stdio.h são também muito utilizadas em manipulações de arquivos. Neste texto falaremos um pouco da função ftell; A função ftell determina a posição atual de um ponteiro em um dado arquivo. Sua sintaxe é: long int ftell ( FILE *ponteiro para o arquivo ); A função ftell devolve o valor do indicador de posição do ficheiro indicado. Para os fluxos binários, o valor devolvido representa a distância em bytes a partir do princípio da informação armazenada. Para os fluxos de texto, o valor devolvido contém um valor, que depende da implementação e que pode ser usado posteriormente por uma invocação de fseek para posicionamento do indicador de posição do ficheiro na mesma posição. A função devolve o valor do indicador de posição do ficheiro, em caso de sucesso, e o valor ??1L, em caso de erro. No caso de insucesso, a causa é sinalizada na variável global de erro errno. Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/10/arquivo-informando-tamanho.html
  22. Para criar este programa utilizei pelo menos cinco funções e duas macros fundamentais para o bom desempenho, que foram as funções: fseek(); Para posicionar o ponteiro de arquivo num byte específico fscanf(); É para o arquivo o que scanf é para o console putc(); Escreve um caracter em um arquivo fgets(); pega uma linha inteira de um arquivo feof();retorna verdadeiro se o final de arquivo foi atingido; E as macros: SEEK_SET, SEEK_CUR. Estas funções e estas macros estão no arquivo de cabeçalho stdio.h. Estas macros trabalham como parâmetros na função fseek(); e são perfeitas para posicionamentos, isto é, acesso aleatórios de dados. SEEK_SET ==> Marca um início no arquivo SEEK_CUR ==> Ponto corrente no arquivo SEEK_END ==> Não foi utilizado neste programa, marca o fim do arquivo. A lógica para posicionar a leitura no início dos nomes das candidatas foi um pouco confusa, note que estes nomes começam na linha seis do arquivo, que começa em zero ( 0 ) e segue até a linha quinze ( 15 ). Então, calculei o tamanho do arquivo e a posição de início dos nomes como já citei acima, e coloquei como condição dentro de um laço while(); A cada ciclo do while(); a variável de controle é incrementada e um novo valor é adicionado, este valor, corresponde ao total de caracteres de cada linha contando com espaços, que obviamente o ciclo pula para a linha mais abaixo, até que o arquivo chegue em sua última linha. Más isto tudo foi porque teimei em fazer esta leitura da coluna dos nomes com fscanf(); Com fgets(); isto teria sido bem mais simples. Um novo arquivo é criado, e recebe escritas dos caracteres dos nomes com a função putc(); agora o arquivo é fechado e aberto novamente como leitura. Esta foi uma breve descrição do funcionamento deste programa, que é indicado a estudantes mais avançados em c. Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/10/arquivo-extraindo-e-salvando-coluna.html
  23. Programadores em linguagem c tem que ter pleno domínio em manipulação de arquivos, e para provar que não estamos de blá-blá-blá, criei este programa interessante. No programa são usados duas funções para leitura nos arquivos,que é a função fscanf(); e a função fgets(); Más o impressionante aqui é que temos a ousadia de escolher as colunas do arquivo a ser lida, ou o arquivo inteiro é claro. Tá certo que utilizei a função fseek(); em conjunto com a função fscanf();se não seria quase impossível conseguir isto. Já já função fggets(); que é muito mais fácil de trabalhar não se fez necessário a função fseek(); para posicionar a leitura só da coluna dos nomes. Fica difícil falar aqui de cada uma das funções, comandos, ou linha de códigos utilizados no programa, más disponibilizo gratuitamente o código para todos os amantes de linguagem c. Veja abaixo o link do código do programa: http://codigosfontes-ccplus-plus.blogspot.com.br/2015/10/arquivo-escolhendo-colunas-para-leitura.html
  24. 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); }
  25. Olá a todos Gostaria de pedir ajuda a vocês pois estou tento dificuldades com funções usando ponteiros. Fiz todo o código, como segui abaixo, porém não estou sabendo passar as informações necessárias para as funções. Se alguém puder corrigir meu código ficaria muito grato. Programa utilizado para desenvolvimento CodeBlock 13.12 /* 1-Faça uma função que receba um valor n e crie dinamicamente um vetor de n elementos e retorne um ponteiro. Crie uma função que receba um ponteiro para um vetor e um valor n e imprima os n elementos desse vetor. Construa também uma função que receba um ponteiro para um vetor e libere esta área de memória. Por fim, crie uma função principal que leia um valor n e chame a função de alocação de memória. Depois, a função principal deve ler os n elementos desse vetor. Então, a função principal deve chamar a função de impressão dos n elementos do vetor criado e, finalmente, liberar a memória alocada através da função criada para liberação. */ int *aloca(int n); void mostra(int *p, int n); void liberaEspaco(int *p); int main(){ int n,i, *vetor; printf("Quantos números deseja armazenar no vetor?\n"); scanf("%d",&n); vetor = &aloca; for(i=0;i<n; i++){ printf("Informe números: \n"); scanf("%d",&vetor); } mostra(vetor, n); liberaEspaco(vetor); system("pause"); return 0; } int *aloca(int n){ int *p; p=(int*)malloc(n * sizeof(int)); if(!p){ printf("memoria insufuciente para alocacao!!"); exit(0); } return p; } void mostra(int *p, int n){ int i; for(i=0; i<n; i++, p++){ printf("Posicao %d = %d: \n",i,*p); } } void liberaEspaco(int *p){ free(p); if(p == NULL){ printf("Espaço liberado!!!!"); } }
×
×
  • Criar Novo...