• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Bash shell macierze, wywoływanie danych w podanej postaci

VPS Starter Arubacloud
0 głosów
523 wizyt
pytanie zadane 2 grudnia 2016 w Inne języki przez agnieszka97 Nowicjusz (120 p.)
Mam mega problem, na podstawach programowania dostaliśmy skrypt do napisania. Treść brzmi tak: Napisz skrypt, który 1) przetwarza dane wejściowe pochodzące z pliku
tekstowego  i 2) wyświetla na wyjściu dane w określonym
formacie, przy czym:

-program powinien wyświetlać informację o sposobie używania skryptu
w sytuacji jego użycia bez wymaganego argumentu jakim jest nazwa pliku z
danymi wejściowymi (usage: $0 macierz.txt)
-Skrypt powinien sprawdzać czy podany plik danych do przetworzenia
istnieje, jeśli nie, to informuje o tym użytkownika i kończy

-powinien sprawdzać wymiar danych wejściowych macierzy do
przetworzenia - liczbę kolumn (X) i liczbę wierszy (Y). Wynik tego
sprawdzenia powinien zostać zapisany w pliku size.log w postaci X,Y
(XprzecinekY - bez żadnej spacji, np. 5,4)
-powinien zawierać funkcje pobierz() pobierającą i
zwracającą żądany jeden element określony przez numer kolumny (x) i
numer wiersza (y) z pliku danych wejściowych.
Powinno działać wywołanie w postaci pobierz 1 2
-Skrypt powinien zawierać dwie zagnieżdżone pętle for wywołujące funkcję
pobierz przechodzącą po wszystkich elementach macierzy (najpierw
pierwszy wiersz od lewej, kolejno drugi wiersz od lewej aż do ostatniego
elementu. Podpowiedź: generacja word: $(seq 1 $X)

Przykładowe dane wyjściowe:

1,1,10
2,1,18
3,1,12
4,1,14
5,1,1
1,2,11
2,2,45
3,2,11
4,2,34

Największy problem mam z ostatnim punktem, wszystkie poprzednie są raczej w porządku. Bardzo proszę o pomoc, tylko konkretną, jestem nogą z basha :(

Z góry dziękuję i pozdrawiam :)

1 odpowiedź

0 głosów
odpowiedź 2 grudnia 2016 przez Benek Szeryf (90,690 p.)

Skoro masz problem tylko z konkretnym podpunktem, to nie widzę sensu pisania reszty, która tylko przeszkadza w tym, by Ci pomóc. Wystarczy informacja, że stworzyłaś funkcję pobierz(), którą wywołuje się za pomocą polecenia:

pobierz $col $row

I zwraca konkretny element. Zakładam, że zrobiłaś wszystko poprawnie, tak jak piszesz, a więc Twój problem należy rozwiązać w ten sposób:

for i in $(seq 1 $n)
do
   for j in $(seq 1 $m)
   do
      ...
      pobierz $i $j
      ...
   done
done

Gdzie n i m oznaczają liczbę kolumn i wierszy.

Podobne pytania

0 głosów
1 odpowiedź 456 wizyt
0 głosów
0 odpowiedzi 140 wizyt
pytanie zadane 19 kwietnia 2021 w Rozwój zawodowy, nauka, praca przez gorgonkowa Obywatel (1,810 p.)
0 głosów
1 odpowiedź 290 wizyt

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...