IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Klára Janstová:4.1.2020 20:21

Ahoj,

prosím o pomoc s tímto úkolem -

Absolutní hodnota pole
Napište funkci, která v zadaném poli nahradí hodnoty jednotlivých prvků pole jejich absolutní hodnotou.
Ukázka:
int[] pole = { 5, -2, 0, -1, 7, -12, 2, 4 };
AbsolutniHodno­taPole(pole); // 5, 2, 0, 1, 7, 12, 2, 4

Mám již něco napsaného, ale netuším, jestli je to správně (samozřejmě to nefunguje - začne mi to vypisovat pouze indexy 0 - 5). Vůbec netuším, jak mám funkci říct, aby prvkům v poli prováděla absolutní hodnotu a zapisovala to do nového pole, které pak dám do Console.Write­Line();

Děkuji!!!!

Zkusil jsem: int a;
int[] pole = new int[6];
pole[0] = -2;
pole[1] = 4;
pole[2] = -8;
pole[3] = 0;
pole[4] = 10;
pole[5] = -92;

for (a = 0; a < pole.Length; a++) pole[a] = Math.Abs(a);

{ Console.Write­Line("absolut­ni hodnota: " + a); }

Console.ReadLine();

 
Odpovědět
4.1.2020 20:21
Avatar
David Flieger:4.1.2020 21:21

Ahoj. Nejspíš to bude tím, že do pole ukládáš absolutní hodnotu indexu. Takže by ta část měla vypadat:

pole[a] = Math.Abs(pole[a]);

A měl bych 2 drobné rady.

  1. Zdrojový kód tady na fóru můžeš vkládat do tagu "code", k čemuž je určen.
  2. Iterační proměnná se většinou inicializuje v příkazu for př:
for( int i = 0; i < length; i++) { }
 
Nahoru Odpovědět
4.1.2020 21:21
Avatar
David
Člen
Avatar
Odpovídá na Klára Janstová
David:4.1.2020 21:22

Ahoj máš to v postatě správně, jen v cyklu používáš index namísto hodnoty:
máš tam tohle:

for (a = 0; a < pole.Length; a++) pole[a] = Math.Abs(a);

má to být:

for (a = 0; a < pole.Length; a++) pole[a] = Math.Abs(pole[a]);

Celé by šlo hezky vyřešit pomocí LINQu

int[] pole = new int[] { 2, 5, -5, 1 };
int[] absPole = pole.Select(cislo => Math.Abs(cislo)).ToArray();
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
4.1.2020 21:22
Avatar
Klára Janstová:4.1.2020 23:47

Ahoj,

děkuji vám moc za pomoc, nyní vše funguje :) linq bohužel zatím použít nemohu, vypracovávaná cvičení mají určitou návaznost na probranou látku a linq tam prozatím není, ale děkuji za tip.

Možno uzavřít.

 
Nahoru Odpovědět
4.1.2020 23:47
Avatar
Odpovídá na Klára Janstová
Neaktivní uživatel:5.1.2020 10:21

Možno uzavřít.

To provedeš tak, že klikneš na fajfku v pravé části příspěvku, který ti nejvíc pomohl.

Nahoru Odpovědět
5.1.2020 10:21
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.