Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

PASCAL - zadanie z tablicami - jak się za nie zabrać?

kostekk 10 Cze 2008 23:44 5017 26
  • #1 10 Cze 2008 23:44
    kostekk
    Poziom 12  

    Witam

    Musze napisać program w pascal'u , ale programowanie to dla mnie czarna magia. Proszę o jakieś wskazówki dla zupełnego laika, jak sie do tego zabrać.
    Treść zadania:
    Do tablicy 4 wiersze x 4 kolumny wprowadzić liczby, wybrać najmniejszą i największą liczbę, obliczyć średnią arytmetyczną dla wszystkich elementów tablicy, obliczyć sumy elementów z każdej kolumny, a wyniki sumowanią umieścić w tablicy czteroelementowej.

    Będę wdzięczy, z góry dziękuje.

    0 26
  • #2 10 Cze 2008 23:57
    Dżyszla
    Poziom 42  

    http://turbopascal.skryptoteka.pl/11.html
    http://turbopascal.helion.pl/r-14.htm
    http://www.pascal.eu.org/lekcja3.htm

    i generalnie

    http://www.google.pl/search?hl=pl&q=pascal+tablice&btnG=Szukaj+w+Google&lr=

    W sprawie odbanowania google skontaktuj się ze swoim administratorem sieciowym.

    0
  • #3 11 Cze 2008 00:03
    kostekk
    Poziom 12  

    No tak, dzięki. A te literki i cyferki to co to jest ?

    0
  • Pomocny post
    #4 11 Cze 2008 00:25
    190175
    Użytkownik usunął konto  
  • #5 11 Cze 2008 01:21
    kostekk
    Poziom 12  

    oloam o to chodziło. Lekcje były ale nauczycielka sama tego nie umie jedynie dała kilka programów do przepisania z kartki więc tego nie można umieć.
    Zadania może i proste jak ktoś ma jakieś podstawy pascala. Postaram sie coś z tego złożyć, Dzięki.

    0
  • #6 11 Cze 2008 16:43
    przemo_wielki
    Poziom 23  

    Zebys za kazdym razem nie musial podawac tych 16 liczb zrob zeby Ci je losowalo z jakiegos zakresu a pozniej wyswietlalo (tak lepiej bedzie Ci sprawdzic poprawnosc dzialan arytmetycznych jakie masz zrobic) np:


    Code:
    program Project2; //pisane na szybko w delphi
    

    {$APPTYPE CONSOLE}

    uses
      SysUtils;
    var
    i,j:byte;
    t:array[1..4,1..4] of byte;
    begin
      { TODO -oUser -cConsole Main : Insert code here }
    randomize;
      for i:=1 to 4 do
      begin
        for j:=1 to 4 do
          begin
            t[i,j]:=random(10);
            write(t[i,j],' ');
          end;
        writeln;
      end;

    readln;
    end.

    0
  • #7 11 Cze 2008 23:33
    kostekk
    Poziom 12  

    Nic z tego nie rozumiem, a te wszystkie kursy w necie są do ****

    0
  • #8 12 Cze 2008 00:14
    JIIIS
    Poziom 17  

    kostekk napisał:
    Nic z tego nie rozumiem, a te wszystkie kursy w necie są do ****


    kup ksiazke Marciniaka, taka fajna zolta, ma 910 stron :P

    czego nie rozumiesz? wogole programowania? masz juz podany przyklad wypelniania liczbami tablicy, potrzebna ci jeszcze wiedza o dzialaniu petli FOR i o dzialaniu instrukcji IF, a program Hello Word przynajmniej napisales? :D

    0
  • #9 12 Cze 2008 00:28
    kostekk
    Poziom 12  

    Z programowaniem nie miałem nic wspólnego i nic nie będę miał, to jest ten jedyny raz. Nie chce sie nauczyć programowania tylko chce napisać ten konkretny program, ale chyba nie da rady :/

    0
  • Pomocny post
    #10 12 Cze 2008 00:53
    JIIIS
    Poziom 17  

    eh, masz i nie mecz juz :P

    PS. oczywiscie da sie w jednej podwojnej petli, ale napisalem lopatologicznie, moze kolega cos postara sie zrozumiec :P

    Code:

    program czarna_magia;

    var
    i,j :byte;
    min, max :byte;
    t :array[1..4,1..4] of byte;
    suma_kolumn :array[1..4] of integer;
    srednia :real;

    begin
       // inicjalizacja generatora liczb losowych
       randomize;

       // losowa tablica 4x4
       for i:=1 to 4 do
       begin
          for j :=1 to 4 do
          begin
             t[i,j] := random(100);
             write(t[i,j], ' ');
          end;
          writeln;
       end;
       writeln;

       // obliczenie min i max
       min := t[1,1];
       max := t[1,1];

       for i:=1 to 4 do
       begin
          for j :=1 to 4 do
          begin
             if (t[i,j] < min) then min := t[i,j];
             if (t[i,j] > max) then max := t[i,j];
          end;
       end;
       writeln('Min: ', min);
       writeln('Max: ', max);
       writeln;

       // obliczenie sumy kolumna
       suma_kolumn[1] := 0;
       suma_kolumn[2] := 0;
       suma_kolumn[3] := 0;
       suma_kolumn[4] := 0;

       for i:=1 to 4 do
       begin
          for j :=1 to 4 do
          begin
             suma_kolumn[j] := suma_kolumn[j] + t[i, j];
          end;
       end;
       writeln('Suma kolumn');
       writeln(suma_kolumn[1], ' ', suma_kolumn[2], ' ', suma_kolumn[3], ' ', suma_kolumn[4]);
       writeln;

       // srednia
       srednia := 0;
       for i:=1 to 4 do
       begin
          for j :=1 to 4 do
          begin
             srednia := srednia + t[i,j];
          end;
       end;
       srednia := srednia / 16;
       writeln('Srednia: ', srednia:0:2);

       readln;
    end.

    0
  • Pomocny post
    #11 12 Cze 2008 01:20
    190175
    Użytkownik usunął konto  
  • Pomocny post
    #12 12 Cze 2008 01:42
    Dżyszla
    Poziom 42  

    i ja się dołączam:

    Code:

    program tablice;

    var
       x,y: byte; //współrzędne kom. w tabeli
       min, max: integer; //wartości max i min
       tab: array[1..4,1..4] of integer; //tablica
       suma: array[1..4] of integer; //tablica sum kolumn
       suma2: integer; //na potrzeby średniej
       sr: real; //średnia

    begin
       randomize; //dzięki temu losowane liczby będą inne za każdym uruchomieniem programu
       clrscr; ///czyścimy ekran

       for y:=1 to 4 do begin
          for x:=1 to 4 do begin
             tab[x,y]:=random(100); //tu losujemy i wstawiamy do tablicy
             write(tab[x,y]:3); //wypisujemy na ekranie to co wylosowaliśmy
          end;
          writeln; //nowa linia
       end;

       //szukanie min i max
       min:=tab[1,1]; //inicjumey min i max wartościami z pierwszej pozycji tablicy
       max:=tab[1,1];

       //przeszukujemy tablice
       for x:=1 to 4 do begin
          for y :=1 to 4 do begin
             if (t[x,y]<min) then min := t[i,j] //jeśli wartośc w badanym punkcie jest mniejsza od min, zapamiętaj ją jako min
             else
                if (t[x,y] > max) then max := t[i,j]; //w rpzeciwnym wypadku sprawdź, czy wartoś nie jest większa od max - jeśli tak - zapamiętaj jako max
          end;
       end;
       writeln('min: ', min);
       writeln('max: ', max);
       writeln;

       //obliczamy sumy kolumn
       for x:=1 to 4 do begin
          suma[x]:=0; // na poczatek zliczania w każdej kolumnie inicjalizujemy zerami
          for y :=1 to 4 do
             Inc(suma[x],t[x,y]); //zwiększamy sumę o wartość z komórki tablicy
       end;

       //i wypisujemy sujmy:
       for x:=1 to 4 do
          write(suma[x]:3);
       writeln;

       // średnia - wystarczy zsumować wszystkie sumy jakie już mamy i podzielić przez ilośc elementów tablicy:
       suma2:=0;
       for x:=1 to 4 do
          inc(suma2,suma[x]); //zwiększamy suma2 o sumę kolumny x
       
       sr:=suma2/(4*4);
       writeln('średnia: ', sr:0:2);

       readkey; //oczekujemy na dowolny znak, żeby się program nam nie zamknął ;)
    end.

    0
  • #13 15 Cze 2008 11:53
    leonsocio
    Poziom 28  

    Witam. Właśnie mam egzamin i mam napisać program który będzie wyznaczał sumę liczb od 1 do 100 w Pascalu, bardzo proszę o szybką pomoc:)

    0
  • #15 15 Cze 2008 12:10
    leonsocio
    Poziom 28  

    dzięki dżyszla:) Czyli jak wpiszę taki programik do Pascala to obliczy ?? Chwilowo nie mam pascala i nie mam jak sprawdzić:(
    Dostałem się do Pascala, wpisałem, ale nie chce się skompilować. Może źle zaczynam wpisywanie kodu? Jak to powinno wyglądać od początku na gotowo tak żebym mógł tylko skopiować do pascala??

    0
  • #16 15 Cze 2008 12:26
    190175
    Użytkownik usunął konto  
  • #17 15 Cze 2008 12:31
    leonsocio
    Poziom 28  

    napisałem tak:
    start;
    begin
    [n=<1,100>]=(1+100)/2*100
    i pokazuje mi takie coś: "begin expected"
    zaznaczam panowie, ja mam egzamin i nie potrzebuję tego zrozumieć tylko poprawnie napisać:)

    0
  • #18 15 Cze 2008 12:42
    JIIIS
    Poziom 17  

    nie mam pojecia jak to moze zadzialac w Pascalu, a egzaminu nikt tu za Ciebie Kolego nie bedzie pisal :P

    0
  • #19 15 Cze 2008 12:45
    190175
    Użytkownik usunął konto  
  • #20 15 Cze 2008 12:45
    leonsocio
    Poziom 28  

    Chłopaki, ta szkoła to tylko przykrywka, uciekam przed wojskiem i dobrze byłoby zaliczyć coś czego i tak nie będę w przyszłości potrzebował:P

    0
  • #21 15 Cze 2008 12:46
    maciek_slon
    Poziom 29  

    tak wygląda program w pascalu ogólnie:

    Code:

    program nazwa_programu;

    begin
    {tutaj wstawiasz treść programu}
    end.

    0
  • #22 15 Cze 2008 12:54
    JIIIS
    Poziom 17  

    piwo dla mnie ;)

    Code:

    program mojasrednia;

    var i :integer;
    var suma :real;

    begin
       suma := 0;
       for i:=1 to 100 do
          suma := suma + i;

       writeln('Suma: ', suma:0:2, ' Srednia: ', (suma / 100):0:2);
       readln;
    end.

    0
  • #23 15 Cze 2008 13:17
    190175
    Użytkownik usunął konto  
  • #24 15 Cze 2008 13:39
    leonsocio
    Poziom 28  

    dzięki chłopaki, zaliczyłem na dopa i mam już wakacje:)

    0
  • #26 15 Cze 2008 14:39
    JIIIS
    Poziom 17  

    gryzie sumienie, ale zal mi chlopaka bylo :) jeszcze by go do wojska wzieli :D

    a petla po to, ze raczej na egzaminie o to chodzilo, jak tam tak ucza programowac, ze ludzie nie potrafia napisac prostego programu to skad maja znac wzor na sume szeregu arytmetycznego? :P

    0