Nekonecnna posloupnost cisel – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Nekonecnna posloupnost cisel – C / C++ – Fórum – Programujte.comNekonecnna posloupnost cisel – C / C++ – Fórum – Programujte.com

 

Mikas
~ Anonymní uživatel
13 příspěvků
28. 11. 2019   #1
-
0
-

Ahoj

Potreboval bych poradit mame du do skoly v C,
kde vstupem je teoreticky nekonecny retezec cisel
napr.: 8 25 11 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 26 11 11
Potreboval bych vedet jak mam alokovat pole se kterym budu nadale pracovat bez toho abych znal velikost pole, kterou obvykle zadava uzivatel.

Cílem tohoto úkolu je zpracovat teoreticky neomezeně dlouhou řadu celých čísel ze standardnícho vstup.

Predem dekuji za pomoc

Nahlásit jako SPAM
IP: 147.32.31.–
KIIV
~ Moderátor
+43
God of flame
28. 11. 2019   #2
-
0
-

#1 Mikas
zpracovat jak? Obcas neni vubec potreba cisla ukladat, staci je zpracovavat prubezne.

Jinak bud spojovy seznam, nebo rozsirovat pole. Nebo spojovy seznam mensich poli..

Nahlásit jako SPAM
IP: 46.135.103.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Mikas
~ Anonymní uživatel
13 příspěvků
28. 11. 2019   #3
-
0
-

#2 KIIV
Vystupem programu ma byt toto:

medián všech zadaných čísel vypsaný na dvě desetinná čísla
počet zadaných čísel
zadané minimální číslo
zadané maximální číslo
histogram zadaných hodnot

počet sloupců histogramů udává první zadané číslo na standardní vstup (je-li první číslo zadané chybně, program končí s návratovým kódem 100 a chybovou hláškou na standardní chybový výstup “Histogram size error\n” )
na začátku každé položky histogramu je uveden interval hodnot (hodnoty uvedeny na jedno desetinné místo, pro celou část vyhrazeny min. 3 znaky)
histogram je lineárně přeškálován tak, aby nejdelší řádek histogramu byl vždy 25 znaků “=” dlouhý.

a ja jsem v tom nejak uplne ztratil potreboval bzch alespon jak tu teoreticky nekonecnou radu cisel zapisu do pole kdyz neznam tu delku nejou cast kodu pro to zapsani do pole v C

Predem dekuji

Nahlásit jako SPAM
IP: 147.32.31.–
KIIV
~ Moderátor
+43
God of flame
28. 11. 2019   #4
-
0
-

Normalne, doporucuju strukturu, jeden pointer na pole hodnot, na kolik hodnot mas misto a kolik cisel uz mas nacteno. Pokud se dostanes na posledni misto, je na case pouzit realloc...

Druha moznost je spojovy seznam. Polozka struktury ma vzdy hodnotu a ukazatel na dalsi polozku. Tady bych rovnou doporucil zaradit novou hodnotu tak aby byl vysledek serazeny (bude se lepe hledat median)

Kazdopadne na histogram neni potreba si ty hodnoty ukladat, tam si budes pocitat kolik hodnot do daneho sloupce patri. Ale median netusim, jestli se da nejak snadno udelat bez ukladani.

Minimum a maximum jde tady bez ukladani.

Nahlásit jako SPAM
IP: 46.135.103.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Mikas
~ Anonymní uživatel
13 příspěvků
29. 11. 2019   #5
-
0
-

#4 KIIV
a nejaky nastin kodu jak zacit byste nekdo mohl poskytnou?

predem dekuji

Nahlásit jako SPAM
IP: 147.32.31.–
gna
~ Anonymní uživatel
1891 příspěvků
29. 11. 2019   #6
-
0
-

   

int *pole = NULL;
int kapacita = 0, nacteno = 0;

while (!konec) {
	int cislo = nacti();

	if (nacteno == kapacita) {
		int novakapacita = kapacita + 1000;
		int *novepole = realloc(pole, novakapacita * sizeof(int));
		if (novepole == NULL)
			chyba("nedostatek pameti");
		kapacita = novakapacita;
		pole = novepole;
	}

	pole[nacteno++] = cislo;
}
Nahlásit jako SPAM
IP: 213.211.51.–
MilanL+1
Grafoman
29. 11. 2019   #7
-
0
-

#5 Mikas
je nějak definován typ a rozsah těch vstupních čísel?

v určitém případě (celá čísla v rozumném rozsahu) by bylo možná vhodnější použít pole velikosti rozsahu jako čítače počtu výskytů jednotlivých čísel.

Nahlásit jako SPAM
IP: 185.112.167.–
KIIV
~ Moderátor
+43
God of flame
29. 11. 2019   #8
-
0
-

#7 MilanL
tezko rici, ale podle rozsahu sloupce histogramu na jedno desetinne cislo bych tipoval, ze i vstupni data budou floaty. Ale mas pravdu, ze cela cisla by bylo rovnou lepsi ukladat to jako histogram (serazeny) a z toho by nebyl problem vymlatit i median, ani by to nebylo nejak potreba omezovat, mit ty data komplet, tak bys to taky neomezil.

Kazdopadne zlaty C++ a kontejnery :D (ikdyz by jim je na 100% zakazali)

Nahlásit jako SPAM
IP: 185.163.40.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Mikas
~ Anonymní uživatel
13 příspěvků
2. 12. 2019   #9
-
0
-

#7 MilanL
#8 KIIV
vstup jsou cela cisla

Nahlásit jako SPAM
IP: 147.32.31.–
Mikas
~ Anonymní uživatel
13 příspěvků
3. 12. 2019   #10
-
0
-

Mohu poprosit jeste o to jak se daji zarovnat cisla typu double? vystup toho programu ma totiz vypadat takto:

Median 11.00
Number count: 23
Min: 1
Max: 26
Histogram:
  1.0 -   4.1|================
  4.1 -   7.2|============
  7.2 - 10.4|============
10.4 - 13.5|=========================
13.5 - 16.6|============
16.6 - 19.8|========
19.8 - 22.9|
22.9 - 26.0|========
 

Predem dekuji za odpovedi

Nahlásit jako SPAM
IP: 147.32.218.–
gna
~ Anonymní uživatel
1891 příspěvků
3. 12. 2019   #11
-
0
-

   

%4.1f

Tj. celkem (minimálně) 4 znaky, 1 desetinné místo.

Nahlásit jako SPAM
IP: 213.211.51.–
Mikas
~ Anonymní uživatel
13 příspěvků
3. 12. 2019   #12
-
0
-

vedeli byste nekdo jak tam vypsat ta rovnase, ktera predstavuji ten graf?

Nahlásit jako SPAM
IP: 147.32.218.–
gna
~ Anonymní uživatel
1891 příspěvků
3. 12. 2019   #13
-
0
-

#12 Mikas
Asi v cyklu s potřebným počtem opakování vypisuj jedno rovnítko.

Nahlásit jako SPAM
IP: 213.211.51.–
Mikas
~ Anonymní uživatel
13 příspěvků
3. 12. 2019   #14
-
0
-

jj to je fakt

ja jsem spis myslel jak vypocitat kolik tam ma byt tech rovnitek podle zadani.

nejaky pomer kdyz radek s nejvetsi hodnotou ma mit 25= a pak le to tem nejak divoce skalovano

Nahlásit jako SPAM
IP: 147.32.218.–
gna
~ Anonymní uživatel
1891 příspěvků
3. 12. 2019   #15
-
0
-

No, nejdelší má být na 25 znaků. Tak ho najdeš a zjistíš koeficient, který ti pro něj dá 25. Třeba

k = maxdelka / 25

A tím pak všechny přeškálueš

scaled = orig / k;

Jestli to správně chápu. A bacha na dělení nulou.

Nahlásit jako SPAM
IP: 213.211.51.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 66 hostů

Podobná vlákna

Posloupnost čisel — založil bender89

Posloupnost čísel — založil Marek

Posloupnost celých čísel — založil Dmitriy

Posloupnost čísel - úkol — založil Sandokan

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý