Linguagem C - Dicas e ajuda para iniciantes
|
08-09-2010, 11:54
Mensagem: #21
|
|||
|
|||
RE: Linguagem C - Dicas e ajuda para iniciantes
boas,
Não tenho aqui nenhum compilador para testar o teu codigo, mas parece-me que o teste de condições deve ser feito numa função criada fora do main, pois qualquer valor que seja diferente de "a" e "c", respectivamente vai dar esse printf "inseriu um numero inteiro menor". A intenção é mesmo essa ou é verificar os valores introduzidos pelo user? Se a intenção é informar q introduziu um valor Maior ou Menor, então retiro o que disse... Senão, tem mesmo de ser criada uma função para verificar os valores introduzidos. De resto, o código está muito bem feito e devidamente comentado. Parabéns, temos programador |
|||
08-09-2010, 14:04
(Esta mensagem foi modificada pela última vez a: 08-09-2010 21:22 por wolfytuga.)
Mensagem: #22
|
|||
|
|||
RE: Linguagem C - Dicas e ajuda para iniciantes
(08-09-2010 11:54)crazyman Escreveu: boas, A tua dúvida reside aqui: Citar:// Teste de condições Certo? Eu compilei o código como podes ver na imagem (não iria publicar aqui um programa que não desse para compilar nem nada do género, foi testado). Neste troço do programa apenas estou a verificar se o que a macro MAX devolve é o valor inserido pelo utilizador ou o que atribuí em "b" ou "d". Eu com este código pretendo apenas mostrar diferentes possibilidades ao utilizador. Por exemplo a macro MAX como podes ver no código foi definida da seguinte maneira: Citar:#define MAX(X,Y) (((X)<(Y)) ? (Y) : (X)) e ela substitui uma possível função do género (atenção, ao contrário de uma macro é preciso indicar se estamos a usar inteiros nos argumentos de entrada e saída, neste caso vou optar por inteiros; no caso de querer experimentar com decimais basta substituir todos os "int" desta função por "float"): Citar:int max_int(int x, int y) ou ainda Citar:int max_int(int x, int y) No entanto este programa possui um erro, não na programação, mas nos conteúdos, já alguém descobriu? EDIT: Esqueci-me dos ; no fim de cada instrução nestes exemplos, já está corrigido wolfytuga Para o que der e vier... emachines E520 | Intel Celeron 2.0GHz | 32/64bit | RAM 2GB | HD 160GB | Intel Mobile 4 Express, 64MB → 1GB |
|||
08-09-2010, 14:55
Mensagem: #23
|
|||
|
|||
RE: Linguagem C - Dicas e ajuda para iniciantes
Na função main tens um return a não retornar nada. Como não é uma função VOID deveria retornar algo não? não é que afecte na compilação mas...
|
|||
08-09-2010, 15:18
(Esta mensagem foi modificada pela última vez a: 08-09-2010 15:29 por wolfytuga.)
Mensagem: #24
|
|||
|
|||
RE: Linguagem C - Dicas e ajuda para iniciantes
(08-09-2010 14:55)kilho Escreveu: Na função main tens um return a não retornar nada. Como não é uma função VOID deveria retornar algo não? não é que afecte na compilação mas... Não há problema aí, o retorno vai ser o retorno padrão, que poderás testar noutro programa, e como o objectivo não é usar o retorno deste programa para verificar erros ou algo do género... O erro de que falei, é que não existe um teste para quando o "a" e o "b" ou o "c" e o "d" são iguais entre si. Que irá resultar numa saída como menor em vez de igual. Isso é fácil de contornar. Se alguém estiver interessado em aprender diga e colocarei aqui o passo seguinte para dotar o programa corrigido com essa característica. Espero estar dentro do assunto deste tópico Só uma coisa que me lembrei sobre isto que disseste: Citar:Na função main tens um return a não retornar nada. És informático ou electrotécnico? É que em electrónica o nada não existe, há sempre alguma coisa no retorno, pode não ser aquilo que queremos, mas há retorno. Calma! Estou só na brincadeira, mas houve um colega que ficou a arder por ter dito que quando se ligava uma memória o conteúdo desta seria nada ou vazio. Quando disse vazio, o professor ficou roxo. Mandou ao aluno em questão fazer um tpc especial: apresentar uma dissertação sobre o "nada" e o "vazio" em electrónica... Bom o mais certo é que ele mudou de Eng. Electrotécnica para Eng. Informática não sei se foi por isso! wolfytuga Para o que der e vier... emachines E520 | Intel Celeron 2.0GHz | 32/64bit | RAM 2GB | HD 160GB | Intel Mobile 4 Express, 64MB → 1GB |
|||
19-11-2010, 14:45
Mensagem: #25
|
|||
|
|||
RE: Linguagem C - Dicas e ajuda para iniciantes
#include <stdio.h>
main() { /*1. Faça um programa em C que contenha um subprograma. É necessário que seu programa como um todo efetue o cálculo do valor de uma prestação em atraso, utilizando a formula: PRESTAÇÃO = VALOR + (VALOR * (TAXA / 100) * TEMPO). */ float Valor_Atual(float Valor1, float Tempo1) { float P_Atraso; P_Atraso = (Valor1 + (Valor1 * (Tempo1/100)* Tempo1)); return (P_Atraso); } int Valor,Tempo, Prestacao; printf ("Informe o valor da conta em atraso: "); scanf ("%f", &Valor); printf ("Informe o tempo de atraso(dias): "); scanf ("%f", &Tempo); Prestacao = Valor_Atual(Valor,Tempo); printf ("O valor atual da sua conta e' : R$%.2f \n", Prestacao ); system ("pause"); } bom eu estou aprendendo linguagem c, entao utilizando função eu fiz esse programa, porem eu faço a entrada de conta em atraso = 100 a entrada de dias em atraso = 1 e ele deveria me retornar o valor = 101 porem tudo ki eu digite ele me volta o valor = 0 alguém poderia me ajudar é urgente serio mesmo preciso aprender direito pq vou fazer uma prova que tem funçoes e matrizes e fora os outros comandandos de C. vlw pela atencao ^^ |
|||
19-11-2010, 16:12
Mensagem: #26
|
|||
|
|||
RE: Linguagem C - Dicas e ajuda para iniciantes
pow ja achei o meu erro
#include <stdio.h> main() { /*1. Faça um programa em C que contenha um subprograma. É necessário que seu programa como um todo efetue o cálculo do valor de uma prestação em atraso, utilizando a formula: PRESTAÇÃO = VALOR + (VALOR * (TAXA / 100) * TEMPO). */ float Valor_Atual(float Valor1, float Tempo1) { float P_Atraso; P_Atraso = (Valor1 + (Valor1 * (Tempo1/100)* Tempo1)); return (P_Atraso); } int /*em vez de int era para eu ter colocado float tb kkkkkk não sei pq eu coloquei int */ Valor,Tempo, Prestacao; printf ("Informe o valor da conta em atraso: "); scanf ("%f", &Valor); printf ("Informe o tempo de atraso(dias): "); scanf ("%f", &Tempo); Prestacao = Valor_Atual(Valor,Tempo); printf ("O valor atual da sua conta e' : R$%.2f \n", Prestacao ); system ("pause"); } |
|||
16-07-2011, 20:20
Mensagem: #27
|
|||
|
|||
RE: Linguagem C - Dicas e ajuda para iniciantes
boas pessoal precisava aquui de uma ajuda a contruir um programa em c,eu ainda sou iniciante no assunto,era o seguinte queria que o programa fizesse aparecer na tela 80% 90% 100% 110% e 125% para escolhermos uma dessas 5 ipoteses,depois au escolher a ipotese por exemplo 110% davame resultado diferente de 100%,
110% duplo flex=2; duplo digital=5; triplo digital=8; se escolhesse 100% duplo flex=1; duplo digital=3; trplo digital=5; e finalmente fazer a soma (opçao 110%) exemplo: eu tinha 4-duplo flex 2-duplo digital 2-triplo digital soma o que iria dar o resultado de 34 pontos... espero que alguem me possa dar uma ajuda,precisava fazer um software assim porque eu sou vendedor |
|||
17-07-2011, 12:30
(Esta mensagem foi modificada pela última vez a: 17-07-2011 12:33 por Mkman.)
Mensagem: #28
|
|||
|
|||
RE: Linguagem C - Dicas e ajuda para iniciantes
Acho que o teu problema é receber o valor do utilizador e depois avaliar as coisas certo? Bem podes receber os valores pelo user usando:
Código: scanf("%d",&nome_da_var); Código: switch(nome_da_var){ Claro que inves de um switch podes tambem usar uns if. Bom Trabalho |
|||
17-07-2011, 15:26
Mensagem: #29
|
|||
|
|||
RE: Linguagem C - Dicas e ajuda para iniciantes
sim é isso,eu estava a uzar o if,
tipo metia se for 80% se for 90% se for 100% se for 110% se for 125% até aqui tudo bem nao dá erro,mas em cada uma das opçoes dos (80%,90% etc..)(ou no caso de uzar switch em cada case queria para cada um deles declarar umas variaveis com o mesmo nome para todos os casos mas com valores diferentes em cada caso,espero que me fasso entender |
|||
17-07-2011, 17:11
(Esta mensagem foi modificada pela última vez a: 17-07-2011 17:12 por helder fortunato.)
Mensagem: #30
|
|||
|
|||
RE: Linguagem C - Dicas e ajuda para iniciantes
(24-08-2010 21:57)Rui C. Escreveu: Obrigado o programa que eu queria fazer era + ou - isto,mas eatá a dár erro #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { int duplo_light_flex,duplo_digital,triplo_10m,triplo_10m_digital; int a,b,c,d,e; a=80; b=90; c=100; d=110; e=125; printf("80%%,90%%,100%%,110%%,125%% digita a tua percentagem%d\n"); scanf("%d",&a,&b,&c,&d,&e); if (a) duplo_light_flex=2; duplo_digital=5; triplo_10m=7 triplo_10m_digital=9; printf(" digite quantos duplo_light_flex%d\n"); scanf("%d",&duplo_light_flex); printf("digite quantos duplo_digital%d\n"); scanf("%d",&duplo_digital); printf("digite quantos triplo_10m%d\n"); scanf("%d",&triplo_10m); printf("digite quantos triplo_10M_digital%d\n"); scanf("%d",triplo_10m_gigital); soma=duplo_light_flex+duplo_digital+triplo_10m+triplo_10m_gigital; printf("resultado%d" ,soma); if (b) duplo_light_flex=4; duplo_digital=7; triplo_10m=9; triplo_10m_digital=11; printf(" digite quantos duplo_light_flex%d\n"); scanf("%d",&duplo_light_flex); printf("digite quantos duplo_digital%d\n"); scanf("%d",&duplo_digital); printf("digite quantos triplo_10m%d\n"); scanf("%d",&triplo_10m); printf("digite quantos triplo_10M_digital%d\n"); scanf("%d",triplo_10m_gigital); soma=duplo_light_flex+duplo_digital+triplo_10m+triplo_10m_gigital; printf("resultado%d" ,soma); if © duplo_light_flex=8; duplo_digital=12; triplo_10m=15; triplo_10m_digital=18; printf(" digite quantos duplo_light_flex%d\n"); scanf("%d",&duplo_light_flex); printf("digite quantos duplo_digital%d\n"); scanf("%d",&duplo_digital); printf("digite quantos triplo_10m%d\n"); scanf("%d",&triplo_10m); printf("digite quantos triplo_10M_digital%d\n"); scanf("%d",triplo_10m_gigital); soma=duplo_light_flex+duplo_digital+triplo_10m+triplo_10m_gigital; printf("resultado%d" ,soma); if (d) duplo_light_flex=10; duplo_digital=14; triplo_10m=18; triplo_10m_digital=22; printf(" digite quantos duplo_light_flex%d\n"); scanf("%d",&duplo_light_flex); printf("digite quantos duplo_digital%d\n"); scanf("%d",&duplo_digital); printf("digite quantos triplo_10m%d\n"); scanf("%d",&triplo_10m); printf("digite quantos triplo_10M_digital%d\n"); scanf("%d",triplo_10m_gigital); soma=duplo_light_flex+duplo_digital+triplo_10m+triplo_10m_gigital; printf("resultado%d" ,soma); if (e) duplo_light_flex=12; duplo_digital=16; triplo_10m=20; triplo_10m_digital=26; printf(" digite quantos duplo_light_flex%d\n"); scanf("%d",&duplo_light_flex); printf("digite quantos duplo_digital%d\n"); scanf("%d",&duplo_digital); printf("digite quantos triplo_10m%d\n"); scanf("%d",&triplo_10m); printf("digite quantos triplo_10M_digital%d\n"); scanf("%d",triplo_10m_gigital); soma=duplo_light_flex+duplo_digital+triplo_10m+triplo_10m_gigital; printf("resultado%d" ,soma); system("PAUSE"); return 0; } |
|||
« Mais Antigo | Mais Recente »
|
Utilizadores a ver este tópico: 2 Visitante(s)