Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Velcis Ribeiro

Problemas em C/C++

Recommended Posts

Estou fazendo curso da ciencia da computação, e preciso de ajuda em 2 problemas, porem nao devo fazer um codigo mais complexo, tem que ser tudo básico sem IF sem Switches e outras strings.

 

Segue eles:

 

1) A forma mais comum para determinar o maior de dois números é utilizando comandos de decisão. Alternativamente podemos calcular o maior de dois números pela formula abaixo.

 

a) Fazer um algoritmo que leia "" TRES "" numeros, calcule e escreva o maior.

B) Determinar como poderia ser encontrado o menor de dois numeros de forma similar. Fazer um algoritmo para determinar o menor de quatro numeros.

 

MAIOR = { (A+B) + |A-B| } / 2

 

2 funciona, mas fazer com 3 e mudar o divisor para 3 não. Quem puder =D.

 

 

 

e o outro

 

2)Fazer um algoritmo que leia o dia do mes (1..31), e o dia da semana correspondente (1..7). Calcule e escreva o dia da semana (1..7) correspondente ao primeiro dia deste mes.

 

Nesse ai não consigo pensar, nao posso usar SWITCH nem IF, então teria q ser algo básico que leia o dia , de acordo com o dia do mes e tal sabem? =\

 

se precisar de alguma outra info agradeço.

vlw equipe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E cadê o código que você fez? Aqui não fazemos trabalho dos outros. O propósito do fórum é tirar dúvidas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

# include <stdlib.h>

# include <stdio.h>

# include <math.h>

 

char a1,a2,a3,a4,a5,a6,a7;

int a,b,c,d,e,f,g,h;

int main(){

 

 

 

printf("Diga que dia eh hoje em No. : ");

scanf("%i", &h);

 

printf("Hoje eh dia %s . \n", h);

system("pause");

 

}

 

Bom desculpa ai, mas isso que eu fiz não adianta muito. Porisso mesmo vim aqui tirar dúvidas com vocês, eu preciso colocar alguma variavel char para ler os nomes de Segunda a Domingo. Mas ai que vem o problema =\. Tento dar valores as letras a1,a2,a3 como Segunda, Terca... e mesmo assim não da, da erro ao compliar.

E como eu disse, infelizmente não posso usar Switches, senao ia ser bem facil.

Qualquer outro problema só me falar q eu respondo. Já já eu posto o outro problema, estou indo buscar o meu trabalho la na facul.

abraço até daqui a pouco.

Compartilhar este post


Link para o post
Compartilhar em outros sites

no outro codigo

 

# include <stdlib.h>

# include <stdio.h>

# include <math.h>

 

int a,b,c,t,e;

int main(){

 

 

 

printf("Diga um valor para A : ");

scanf("%i", &a);

 

printf("Diga um valor para B : ");

scanf("%i", &B);

printf("Diga um valor para C : ");

scanf("%i", &c);

e=fabs(a-b-c);

t=((a+b+c)+e)/3;

 

printf("O maior numero eh %i . \n", t);

system("pause");

 

}

 

Eu calculo e da certo as vezes, outras vezes dá valor quebrado como ex: A = 20 B = 30 C = 50 Total = 53 ..

 

Se souberem, obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Escreva o calendário de um mês qualquer e pense nos dias como inteiros da reta numerada. Você percorre essa reta diminuindo 7 dias enquanto resultado r for > 7

Se r = 1, então o primeiro dia do mês é o mesmo do dia escolhido (dS' = dS).

Se r < 0, soma-se o valor absoluto desse resultado + 1 no dia da semana escolhido (dS' = |r| + 1 + dS)

Se 1 < r < 7, dS' = (dS + r) % 7.

 

 

P/ encontrar o maior você avalia em cascata com a mesma equação usando o maior número identificado anteriormente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poisé, mas como eu disse, não posso usar " if " nem " switch ", é apenas a segunda semana, eu até sei usar um pouco mas ele quer normal, básico.

Ai me complicou, fiz todas as outros problemas só me restava esses 2, mas vlw pela ajuda no segunto, funfou, só o problema eh o 1 agora.

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou dar quote no que eu postei:

 

Outra opção ao invés de esperar alguém resolver o problema é ir no Google procurar por calculate weekday monthday...

 

http://www.sislands....ek3/dayofwk.htm

 

Conselho de quem passou 6 anos num bacharelado em ciência da computação: leia as coisas até o final. Até rodapé de post, página, livro, artigo, receita, manual. Se você ignorou completamente o link que eu postei, já começou mal o curso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

nuss que complicado ein...

não so muito bom de c/c++ mais oq você pode usa? pq se você pode usar o operador "?" da na boa XD pro 1º

 

ou se você não se importa com o resto = ta usanu na formula fais assim ó

 

copia normal a formula

MAIOR = { (A+B) + |A-B| } / 2

 

depois na linha de baixo

 

MAIOR = { (MAIOR+B) + |MAIOR-B| } / 2

 

rs pensei agora testa ai pra ve se funfa... beleza

 

 

byeeeee sorry se falei bestera ... :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Kadu, eu já postei um link com a solução p/ o primeiro problema. Provavelmente ele não leu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não. Você não leu. Você passou por cima.

Me diga onde isso é Javascript e onde está o if:

 

bullet.gifCalculating the day of the week

The following was taken from The Calendar FAQ.

 

To calculate the day on which a particular date falls, the following algorithm may be used (the divisions are integer divisions, in which the remainders are discarded):

 

a = (14 - month) / 12

y = year - a

m = month + 12 * a - 2

d = (day + y + y / 4 - y / 100 + y / 400 + (31 * m / 12) % 7

 

The value of d is 0 for a Sunday, 1 for a Monday, 2 for a Tuesday, etc.

 

This can be converted into the following simple script, where Math.floor converts floating point numbers to integers:

 

E é o segundo tópico da página...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae isis, desculpa ai amigo, passei direto aonde dizia var. Mil desculpas. Assunto encerrado, podes fechar o tópico. Vlw.!

 

Eu vi a logo, introdução a java script e achei estranho. Mals ai!

Não funcionou mas obrigado.

Ótima staff.

Compartilhar este post


Link para o post
Compartilhar em outros sites

rs não funciono mais de boa essa foi otima...

 

ae isis vi q se manja um bocado né...onde encontro material pra estudu dessas coisas em portugues plise pq meu ingles é o do google tradutor :lol:

 

c/c++ e asemble

 

c++ com VS e direct X

 

e finalmente se eu tivé umas duvidas se da uma força né?? :P

 

bye

(obs: ja procurei no google.. mais ñ acho nada q preste... sei q é precizo saber ingles mas se eu fo espera acaba meu cursu pra pode estuda... fica ruim né)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se não funcionou é porque você não implementou certo.

 

Data: 13-03-2007

 

a = (14 - 2) /12 = 1

y = 2007 - a = 2006

m = 2 + 12 * 1 -2 = 12

d = (1 + 2006 + 2006/4 - 2006/100 + 2006/400 + (31 * 12/12)) %7 = 4 (Quinta-Feira)

 

Vá no calendário. 1 de Março de 2007 é uma Quinta-feira.

 

Lembre-se também das aulas de história... Hoje a gente usa o calendário gregoriano, mas até 1582, o oficial era o calendario Juliano. E nem todos os paises do mundo mudaram no mesmo dia.

Se você fizer os calculos p/ 1-01-1700, vai dar 1 (Segunda), apesar do calendário aqui no Linux mostrar Sexta feira (que é o dia no calendário juliano). Os EUA adotavam o calendário gregoriano em 1700. Portugal e os territórios do império (brasil incluido até 1822) adotaram o gregoriano no mesmo ano (1582)

 

http://www.henk-rein...cal/gregcal.htm

http://calendarhome.com/converter/

Compartilhar este post


Link para o post
Compartilhar em outros sites

As divisões que o algortimo apresenta são divisões inteiras.

Mas não são quaisquer divisões, o resultado é obtido truncando o número. por exemplo:

 

Em C:

6 / 10 = 1

 

mas o algoritmo espera que:

6 / 10 = 0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui segue o Algorimto correto:

 

# include <stdlib.h>

# include <stdio.h>

# include <math.h>

 

char a1,a2,a3,a4,a5,a6,a7;

int a,b,c,d,e,f,g,h;

int main(){

h < 32;

g < 8;

c > 0;

 

printf("Diga que dia eh hoje em No. : ");

scanf("%i", &h);

printf("Diga que dia da semana respectivamente Segunda-Feira = 1 ... Domingo = 7 : ");

scanf("%i", &g);

 

a=h-1;

b=a-7;

 

c=fabs(g-B);

 

 

printf("O dia da semana eh %i . \n", c);

system("pause");

 

}

 

O cara digita o numero do dia por exemplo hoje é dia 20, ai pede o dia da semana que é sabado entao é 6.

 

Dai ele descobre que dia da semana é dia 1º deste mes. Tentei fazer isto que va diminuindo, até que consegui até o numero 12, mas apartir dai começa a dar numero negativo, porisso pus o "fabs()" para dar positivo mas mesmo assim apartir do 13 ele ja encontra valores errados.

 

Desculpem nao ter explicado direito no começo do tópico, mas aguardo ajuda. Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.