ahoj moc ráda bych vás tady poprosila jesli by mi někdo nepomohl s úkolem..... jsem naprostý začátečník a potrěbovala bych program který seřadí deset čísel od nejmenšího po nejvetší....
Fórum › C / C++
Seřazení deseti náhodných číslic
tak si predstav jak bys to musela radit ty kdybys to mela ve forme treba kulicek s cislama.. kdy muzes hybat pokazdy jen s jedinou kulickou a mas jeste jedno misto kam si druhou muzes odlozit...
jinak jeden z algoritmu je ze porovnavas prvni cislo s ostatnimi v poli a pokud je nejakej mensi nez to co tam je, tak prohodit - kdyz se dojede na konec mas na prvni pozici nejmensi cislo... no a pak se presunes na druhou pozici -- zase to same: srovnat vsechny zbyvajici cisla a prohazovat pokazde to, co je mensi na aktualni pozici (jmenuje se to select sort)
a na co si uz prisla?
zakladni tvar programu?
jaky datovy typ na to pouzit?
jak vypada pole v jazyce ktery mas pouzit?
... ti samozrejme tady prilis nepomuzu ".net" je jen framework pouzivany s hromadou programovacich jazyku (od C++, C#, VB, ...)
tak se pojede postupne (hledej ty veci na googlu)
Jak vypada uplne nejjednodussi program v C++ ve stylu hello world?
Jake jsou tam datove typy?
Jak priblizne funguje for cyklu?
(hazej odpovedi sem)
#6 KIIV
nclude <stdio.h>
#include <iostream>
using namespace std;
main() {
int pole [10] = {2, 25,15,3,45,62,12,10,9,22 } ;
for(int i = 0;i < pole; i++)
{
{
if(pole[i] < pole[i+1])
{
no tak todle sem tak nějak sesmolila ale stejně mi to nefunguje mohl bys mi prosim říct co tam mám blbě
#7 lenka
Neuzavíráš bloky (složené závorky), výraz for(int i = 0;i < pole; i++) je nesmyslný - místo pole musí být 10 (jeho velikost).
Zkus prvně napsat a poslat sem program, který pomocí cyklu vypíše čísla, která máš uložené v poli. Ať si ujasníš, jak cyklus funguje.
#include <stdio.h>
#include <iostream>
using namespace std;
#define POCET 10
int main() { // kazda funkce musi obsahovat navratovy typ ( main je vzdy int );
int pole [POCET] = {2, 25,15,3,45,62,12,10,9,22 }; // toto je v poradku - akorat na konstatni hodnoty je lepsi pouzit nejakou konstantu - ne magicke cisla
// promennou "i" s "pole" srovnavat prilis nejde ... jedno je cislo a druhe je "ukazatel" na misto v pameti, kde pole zacina
// lepsi je alespon vyuzit drive definovany POCET ktery je roven 10
for(int i = 0; i < POCET-1; i++) {
if(pole[i] < pole[i+1]) { // ok
// jen je potreba pohlidat si aby i+1 bylo mensi nez 10! - jelikoz se indexuje od 0 tak posledni prvek z pole o 10 prvku ma index 9!!!
int t = pole[i]; // schovame si obsah pole[i]
pole[i] = pole[i+1]; // prepiseme pole[i] hodnotou pole[i+1]
pole[i+1] = t; // a pole[i+1] prepiseme hodnotou co byla puvodne v pole[i] pred prepsanim novou
} // konec if
} // konec for
} // konec main()
(a samozrejme toto ti prokopiruje nejvyssi hodnotu na konec pole :) aby to fungovalo musi se to provadet tak dlouho dokud se cokoliv jeste muze prohodit - nebo alespon tolikrat aby bylo jiste, ze je vse spolehlive poprohazovano - tj cca 9x)
Tak teď si nejsem moc jistej, je to .NET nebo ne? Můžu to přesunout?
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Prevod z arabskych do rimskych cislic a naopak — založil RedSoul
Vývoj HW a SW pro ovládání LED číslic — založil Richard01
Hledám programátora na vývoj HW a SW pro ovládání LED číslic — založil Richard01
Umíte všemi deseti/devíti? — založil yaqwsx
Moderátoři diskuze