Algoritmus pomoc

Programovacie jazyky, rady, poradňa...
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

No neviem, ale myslim, ze v zadani mas, ze mas vypocitat rozdiel a ty mas vo svojom diagrame t1+t2 :D ..a aj tak myslim, ze tam ide skor o ten samotny prevod vysledku na spravny tvar..cize bud odcitas osobitne s m h, prevedies vsetky na s a potom spatne porozdelujes, alebo budes osetrovat budes osetrovat postupne kazdy pripad, t.j. po odcitani ti vznikne napr. s= -5 m=3 h=2, tak das ze ked je s zaporne tak zmensi m o 1.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

navyše to máš úplne zle zakreslené aj keby to bolo správne. Výstupy (teda veci kde máš "zadajte..") majú byť v kosodlžniku a nie obdlžniku. Obdlzniky slúžia na spracovanie. Príkaz "zadám" nemá čo robiť v obdlžniku, nie je to žiadna funkcia. Neviem načo si na začiatku dal t1 a t2 s hodnotami keď ich potom zadávaš...
Shwollo
Darca
Darca
Používateľov profilový obrázok
Príspevky: 2543
Registrovaný: 04 dec 2006, 14:35
Bydlisko: LM / Brno

Príspevok od používateľa Shwollo »

cawte. Pls mohli by ste mi pomôcť s algoritmom? Potrebujem spraviť vývojový diagram.

Navrhnite algoritmus, ktorí spočíta dve celé čísla na nekonečnom počte rádov. Čísla sú reprezentované ako vektory (číslice sú prvkami vektora). Výsledok má byť reprezentovaný ako vektor.

Lebo ja nechápem ani tomu zadaniu. Ak by ste mi to pls mohli vysvetliť. K+ istá

Diky moc
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

No ak som to ja spravne pochopil, tak mas spravit algoritmus na spocitanie dvoch cisel pricom musis spocitavat po jednotlivych cisliciach, t.j. neico ako ked spocitavaju male deti v skole na papier stylom:
532
275
-----
7
10
7
----
807

neviem presne tie diagramy robit, ze co sa tam musi davata co nie, ale tak taky zhruba postup napisem:
vstup dva vektory, potrebujem 1 premennu na prenos(carry, kludne aj typu bool), jedno pole na vysledok(o velkosti vacsieho cisla+1 cifra)
Spocitas posledne cifry z oboch cisel a ked je viac ako 9 tak odcitas 10 (alebo div 10), carry nasatvis na 1 a do poslednej cifry vysledku ulozis zvysok po odpocitani tej 10 (mod 10). opakujes az kym je aspon v jednom poli este cislica. (dalo by sa vylepsit aj tak, ze ked skonci prve, tak skontrolujes carry,..ale to je zbytocne zlozite na diagram)
Mattias
Novice
Novice
Príspevky: 2
Registrovaný: 07 dec 2006, 17:24
Kontaktovať používateľa:

Príspevok od používateľa Mattias »

Shwollo napísal:cawte. Pls mohli by ste mi pomôcť s algoritmom? Potrebujem spraviť vývojový diagram.

Navrhnite algoritmus, ktorí spočíta dve celé čísla na nekonečnom počte rádov. Čísla sú reprezentované ako vektory (číslice sú prvkami vektora). Výsledok má byť reprezentovaný ako vektor.

Lebo ja nechápem ani tomu zadaniu. Ak by ste mi to pls mohli vysvetliť. K+ istá

Diky moc
To iste mam aj ja a tiez tomu nechapem... Tipek mi to vysvetlil, ze to te vektory su ako polia cisel....a cisla sa jednotlivo pocitaju ci co...newem...tes tomu nechapem....
kevin_7
Novice
Novice
Príspevky: 4
Registrovaný: 05 dec 2009, 20:48

algoritmus

Príspevok od používateľa kevin_7 »

potreboval by som pomôcť s algoritmom, neviem si s ním rady. poodpadávali mi cviká a ani na strednej som nemal algoritmy. mam navrhnúť algoritmus, ktorý pre zadaný dátum v tvare dd.mm.rrrr vypise prislusny den v tyzdni.pls help
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

Kód: Vybrať všetko

#include <stdio.h>

int main(){
	int d,m,r,c,mes[12]={11,12,1,2,3,4,5,6,7,8,9,10},cp[4]={4,2,0,5};
	char dni[][5]={"Pon","Ut","Str","Stv","Pia","So","Ne"};
	scanf("%d.%d.%d",&d,&m,&r);
	if(m<3) r--;
	c=cp[(r/100)%4];
	m=2.6*mes[m-1]-0.2;
	d=(d+m+r+r/4+c/4-2*c)%7;
	printf("%s",dni[d]);
}
Je tam pouzita "Uspensky and Heaslet formula", tak na vytvaranie diagramu ti bude asi stacit ta ;) , pripadne skus trochu pogooglit, tych sposobov je dost vela ;)
kevin_7
Novice
Novice
Príspevky: 4
Registrovaný: 05 dec 2009, 20:48

Príspevok od používateľa kevin_7 »

dakujem ale ako z toho spravit vyvojovy diagram??
Shwollo
Darca
Darca
Používateľov profilový obrázok
Príspevky: 2543
Registrovaný: 04 dec 2006, 14:35
Bydlisko: LM / Brno

Príspevok od používateľa Shwollo »

picuge napísal:
Spocitas posledne cifry z oboch cisel
ako spočítam posledné cifry? resp. ako to zapíšem? napr. ak mám pole ai a bi (a s indexom i a b s indexom i)
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

No onno to dost zavisi od toho v com by si to robil...ale ja by som to zapisal asi ako pole[length(pole)-1], pricom predpokladam hodnoty indexov od 0..length(pole)-1

//autoeditácia príspevku ( 08 Dec 2009, 10:43 )
kevin_7 napísal:dakujem ale ako z toho spravit vyvojovy diagram??
No skusil som daco vytvorit, ale diagramy nie su moja silna stranka :D
Prílohy
Drawing1.jpg
kevin_7
Novice
Novice
Príspevky: 4
Registrovaný: 05 dec 2009, 20:48

Príspevok od používateľa kevin_7 »

thnx, fakt dik lebo ja v tom mam riadny misung a ete som si dostal aj take zadanie
Shwollo
Darca
Darca
Používateľov profilový obrázok
Príspevky: 2543
Registrovaný: 04 dec 2006, 14:35
Bydlisko: LM / Brno

Príspevok od používateľa Shwollo »

Navrhnite algoritmus, ktorí spočíta dve celé čísla na nekonečnom počte rádov. Čísla sú reprezentované ako vektory (číslice sú prvkami vektora). Výsledok má byť reprezentovaný ako vektor.

nevedeli sme ako zapísať posledný prvok pola tak some dali n ako počet prvkov pola :D .

Čo si o tom myslíte?
Prílohy
test.jpg
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

No dlzka cisla v cifrach by sa dala zistit aj nasledovnym cyklom:

Kód: Vybrať všetko

pocet_cislic=1;
while((cislo div 10)!=0)pcoet_cislic++;
a zistit takto pred samotnym priklad pocet cislic jedneho a druheho cisla a uz by to nemal byt problem ;) (aj ked je to par krokov navyse)
Shwollo
Darca
Darca
Používateľov profilový obrázok
Príspevky: 2543
Registrovaný: 04 dec 2006, 14:35
Bydlisko: LM / Brno

Príspevok od používateľa Shwollo »

a ten moj algoritmus je OK? kebyže ho nechám tak ako je?
picuge
Expert
Expert
Príspevky: 167
Registrovaný: 17 dec 2005, 20:38
Bydlisko: Bratislava/Martin

Príspevok od používateľa picuge »

No minimalne pri tom cyklu(typu for) nemas sipku, ze vlastne kde konci ;), takze takto to vyzera ako prazdny cyklus. Pri podmienke x>9 by sipka mala smerovat asi niekde medzi prikazy a nie priamo na nejaky(aj ked isty si nie som).
Ked ti na nejakej cifre vyjde cislo vacsie ako 9, tak ty ho len zmenis o 10 a tu desiatku neposunies na dalsiu cifru ;)
Z toho C[x]:=x nema ist preco aka sipka..to je len jednoduchy prikaz a nie cyklus, tak z neho nema preco neico vychadzat ;)
V tomto algoritme ratas s tym, ze cisla su rovnakej dlzky, keby neboli, tak kazdy int je inicializovany na -2147..., cize by si pripocital k obrovskemu zapornemu cislo jednu cifru z druheho cisla a to by moc pekne asi nedopadlo. A kedze mas v kazdom prvku pola len jednu cifru, tak by bolo asi lepsie zvolit typ poloziek v poli na nejaky Byte alebo ShortWord, ktore su uz aj inicializovane na nulu a zaroven zaberaju menej miesta v pamati.

Hadam som nasiel vsetko :D
hidden11
Novice
Novice
Príspevky: 8
Registrovaný: 07 dec 2009, 8:25

meine probleme:)

Príspevok od používateľa hidden11 »

Zdravim, potrebujem pomoct s algoritmom

Zadanie:
Navrhnite algoritmus, ktorý vypočíta rozdiel dvoch časových údajov zadaných vo forme hh:mm:ss (hodiny, minúty, sekundy) a výsledok zobrazí vo forme hh:mm:ss.

Riesil som to takto:

1. START
2. zadajte T1= v hh:mm:ss
3. T1: if mm>59 else 2.
4. T1: if ss>59 else 2.
5. zadajte T2= v hh:mm:ss
6. T2: if mm>59 else 5.
7. T2: if ss>59 else 5.

Prevod na sekundy a rozdiel

8.T1 = hh:mm:ss = hh*3600 + mm*60 + ss = X
9.T2 = hh:mm:ss = hh*3600 + mm*60 + ss = y
10.T= x - y
11.T: if T<0 else 12.
12.T= y - x

Konvertovanie vysledku do zakladneho tvaru - hh:mm:ss

13. T / 3600 = quotient1 (cele cislo = hod.) = A, reminder1 (zvysok v sec.)
13. reminder1 / 60 = quotient2 (cele cislo v min.) = B, reminder2 (zvysok v sec)= C
14. print A:B:C
15. opakuj > 2.
16. END

Je to ok? A ma niekto skusenosti s kreslenim vyvojovych diagramov?
Aby mi to nejak nacrtol?:)


Vopred dakujem za odpovede...
Trisko
Novice
Novice
Príspevky: 9
Registrovaný: 04 dec 2008, 19:42

Príspevok od používateľa Trisko »

ahojte, aj ja by som mal prosbu o vytvorenie grafu algoritmu, lebo si s tym neviem dat rady, ak by bol niekto ochotny mi ho spravit a navrhnut...

tu je zadanie:

Navrhnite algoritmus, ktorý vypočíta rozdiel dvoch časových údajov zadaných vo forme hh:mm:ss (hodiny, minúty, sekundy) a výsledok vo forme hh:mm:ss
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Príspevok od používateľa audiotrack »

hidden11: na štvrtej strane tejto témy si už ten problém riešil, zhodnotenie tvojho vývojakú máš na piatej strane.
algoritmus máš v podstate dobre, až na to že je nejak neštandartne zapísaný. Algoritmy sa formálne popisujú takto, ak ste to ale v škole robili takým spôsobom ako to máš tak ok
hidden11
Novice
Novice
Príspevky: 8
Registrovaný: 07 dec 2009, 8:25

alg

Príspevok od používateľa hidden11 »

Na algoritmoch som v skole nebol (choroba), ale co viem tak robili len graficke zobrazenie algoritmu - vyvojove diagrami.
Tejto problematike venoval cviciaci 1 cviko (co je podla mna malo) + co spoluziaci vraveli, ze sam tomu nechapal (doktorant)...
predmet - Algoritmizacia budeme mat az v dalsom semestri.

Zadanie mame odovzdat v grafickej forme, toto je slovne vyjadrenie mojho zadania....neprihliadaj na strukturu..popis algoritmu som robil 1. krat...

nenasiel by si niekto par minut cas a nenacrtol ho?

dakujem
Shwollo
Darca
Darca
Používateľov profilový obrázok
Príspevky: 2543
Registrovaný: 04 dec 2006, 14:35
Bydlisko: LM / Brno

Príspevok od používateľa Shwollo »

lepšie?
Prílohy
test.jpg
Napísať odpoveď