• 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

0 głosów
65 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 Nałogowiec (34,640 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ź 49 wizyt
0 głosów
2 odpowiedzi 115 wizyt
pytanie zadane 12 stycznia 2016 w Inne języki przez Pac Plus Bywalec (2,270 p.)
0 głosów
1 odpowiedź 57 wizyt
pytanie zadane 5 dni temu w Inne języki przez robRoy Początkujący (370 p.)
Obowiązuje już zaktualizowany regulamin.

Czy wiesz, że nie musisz już odświeżać strony głównej?

Lista pytań i odpowiedzi aktualizuje się automatycznie!

38,612 zapytań

76,496 odpowiedzi

149,411 komentarzy

18,072 pasjonatów

Przeglądających: 248
Pasjonatów: 26 Gości: 222

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...