Błędy w module o tablicach.

0

Mógłbym prosić o poprawienie błędów Jestem początkujący, więc proszę o wyrozumiałość. Gdyby ktoś nie mógł się rozczytać, to oto polecenie:

Zdefiniuj moduł tablice, który zawiera następujące typy:
tablice1- typ tablicowy dla tablicy jednowymiarowej o długości 100
tablice2- typ tablicowy tablicy dwuwymiarowej o maksymalnych rozmiarach 25x25. Tablice zawierają liczby całkowite. Moduł ma zawierać następujące funkcje:
-do wypełnienia tablic z klawiatury i losowo oraz funkcje wypisujące wartości tablicy na ekranie konsoli.
-Funkcje wyszukującą najmniejszy elemt w tablicy i funkcje wyszukującą największy element w tablicy oraz funkcję sortującą tablicę jednowymiarową.

unit tablice;
interface
uses CRT;
type
tablica1=array[1..100] of integer;
tablica2=array[1..25,1..25] of integer;
 
tablica_z_klawiatury1_wypisz=array[1..25] of integer;
tablica_z_klawiatury2_wypisz=array[1..25,1..25] of integer;
tablica_losowo1wypisz_wypisz=array[1..25] of integer;
tablica_losowo2wypisz_wypisz=array[1..25,1..25] of integer;
 
 
procedure tablica_z_klawiatury1;
procedure tablica_z_klawiatury2;
procedure tablica_losowo1;
procedure tablica_losowo2;
procedure tablica_z_klawiatury1_wypisz;
procedure tablica_z_klawiatury2_wypisz;
procedure tablica_losowo1_wypisz;
procedure tablica_losowo2_wypisz;
procedure wartosc_najmniejsza;
procedure wartosc_najwieksza;
procedure sortowanie_babelkowe;
 
implementation
 
procedure tablica_z_klawiatury1;
var
tablica1:=tablica;
dl,i:integer;
begin
writeln('podaj wielkosc tablicy, nie wiecej niz 100');
readln(dl);
writeln('Podaj wartosci tablicy');
for i:=1 to dl do begin
        read (tablica[i]);
end;
tablica_z_klawiatury1_wypisz[i]:=tablica[i];
readkey;
end;
 
 
 
 
 
procedure tablica_z_klawiatury2;
var
tablica2:=tab;
k,w,i,j:integer;
begin
clrscr;
writeln('podaj ilosc kolumn, nie wiecej niz 25');
readln(k);
writeln('podaj ilosc wierszy, nie wiecej niz 25');
readln(w);
writeln('  ');
for i:=1 to w do begin
for j:=1 to k do begin
writeln('podaj wartosc dla kolumny ',j,' i dla wiersza ',i);
read(tab[i][j]);
end;
tablica_z_klawiatury2_wypisz[i][j]:=tab[i][j];
readkey;
end;
 
 
 
 
procedure tablica_losowo1;
var
zk,i,dl:integer;
tablice1:=tablica;
begin
clrscr;
writeln('podaj wielkosc tablicy, nie wiecej niz 100');
readln(dl);
writeln('podaj zakres wartosci');
readln(zk);
randomize;
for i:=1 to dl do begin
       tablica[i]:=random(zk);
end;
tabauto1wypisz_wypisz[i]:=tablica[i];
readkey;
end;
 
clrscr;
writeln('tablica ma wartosci:');
for i:=1 to dl do begin
if (i<dl) then
write(tablica_losowo1wypisz_wypisz[i],' ; ')
else
writeln(tablica_losowo1wypisz_wypisz[i]);
end;
readkey
end;
 
 
 
procedure tablica_losowo2;
var
k,w,zk,i,j:integer;
tablice2:=tab;
begin
clrscr;
 
writeln('podaj ilosc kolumn, nie wiecej niz 25');
readln(k);
writeln('podaj ilosc wierszy, nie wiecej niz 25');
readln(w);
writeln('podaj zakres wartosci');
readln(zk);
writeln('  ');
randomize;
for i:=1 to w do begin
for j:=1 to k do begin
tab[i][j]:=random(zk);
end;
tablica_losowo2wypisz_wypisz[i][j]:=tab[i][j];
readkey;
end;
 
 
 
 
 
procedure tablica_z_klawiatury1_wypisz;
var
i,j,dl:integer;
begin
clrscr;
writeln('tablica ma wartosci:');
for i:=1 to dl do begin
if (i<dl) then
write(tablica_z_klawiatury1_wypisz[i],' ; ')
else
writeln(tablica_z_klawiatury1_wypisz[i]);
readkey;
end;
 
procedure tablica_z_klawiatury2wypisz;
var
i,j,k:integer;
begin
writeln(' ');
for i:=1 to w do begin
for j:=1 to k do begin
if (j<k) then
write(tablica_z_klawiatury2_wypisz[i,j],' ; ')
else
writeln(tablica_z_klawiatury2_wypisz[i,j]);
end;
end;
readkey;
end;
 
procedure tablica_losowo1_wypisz;
var
i,dl:integer;
begin
clrscr;
writeln('tablica ma wartosci:');
for i:=1 to dl do begin
if (i<dl) then
write(tablica_losowo1wypisz_wypisz[i],' ; ')
else
writeln(tablica_losowo1wypisz_wypisz[i]);
end;
readkey
end;
 
procedure tablica_losowo2_wypisz;
var
i,j,k:integer;
 
begin
for i:=1 to w do begin
for j:=1 to k do begin
if (j<k) then
write(tablica_losowo2wypisz_wypisz[i,j],' ; ')
else
writeln(tablica_losowo2wypisz_wypisz[i,j]);
end;
end;
readkey
end;
 
procedure wartosc_najmniejsza;
var
const IMAX=100;
min1,min2,i,a:integer;
 
begin
read(tablica_z_klawiatury1_wypisz[i]);
if (a[1] < a[2]) then begin
    min1 := a[1];
    min2 := a[2];
  end
  else begin
    min1 := a[2];
    min2 := a[1];
  end;
 
  for i := 3 to IMAX do begin
    if (a[i] <= min1) then begin
      min2 := min1;
      min1 := a[i];
    end
    else if (a[i] <= min2) then
      min2 := a[i];
  end;
  WriteLn('Najmniejsza liczba podanego ciagu to ',  min1);
  readkey;
 
end;
 
 
 
procedure wartosc_najwieksza;
var
max,n,i:integer;
 
begin
 
read(tablica_z_klawiatury1_wypisz[i]);
max := tablica_z_klawiatury1_wypisz[1];
for i:=2 to n do
  if tablica_z_klawiatury1_wypisz[i]>max then
    max := tablica_z_klawiatury1_wypisz[i];
writeln('Największy element = ',max);
readkey;
end;
 
procedure sortowanie_babelkowe;
var
 
begin
 
d:=2
read(tablica_z_klawiatury1_wypisz[i]);
for b:=1 to a do begin
                        if (tablica_z_klawiatury1_wypisz[i]>(tablica_z_klawiatury1_wypisz[i+1] then begin
                        e:=tab[d];
                        end;
                d:=d+1;
                end;
                writeln ('',e);
                for b:=1 to a do begin
                write (tablica_z_klawiatury1_wypisz[i],' ');
                end;
        readkey;
end.

Z powodu usunięcia mojego tematu z powodu nieczytania regulaminu wklejam odpowiedzi użytkowników:

Patryk27:

type
tablica1=array[1..100] of integer;
tablica2=array[1..25,1..25] of integer;
 
tablica_z_klawiatury1_wypisz=array[1..25] of integer;
tablica_z_klawiatury2_wypisz=array[1..25,1..25] of integer;
tablica_losowo1wypisz_wypisz=array[1..25] of integer;
tablica_losowo2wypisz_wypisz=array[1..25,1..25] of integer; 

1a) złe nazwy typów; najlepiej byłoby coś w rodzaju IntArray100 = Array[1..100] of Integer; (podobnie z resztą).
1b) powtarzanie się tych samych typów

2.Mylisz typy ze zmiennymi.

3.Beznadziejne formatowanie kodu.

Z powodu punktu trzeciego nic więcej nie można stwierdzić; jeżeli masz Lazarusa, jest tam wbudowane narzędzie do formatowania kodu - użyj go.

babubabu:

Funkcje wyszukującą najmniejszy elemt w tablicy i funkcje wyszukującą największy element w tablicy

A ja widzę same procedury.

0

Czyli, że dostałeś wskazówki, co należy zmienić, ale nie potrafisz się do nich zastosować?
...na pewno sam napisałeś ten kod?

0

Tak, wszystko sam skleciłem, ale korzystałem z gotowych rozwiązań

Masz rację, nie potrafię skorzystać z tych wskazówek:

1a) złe nazwy typów; najlepiej byłoby coś w rodzaju IntArray100 = Array[1..100] of Integer; (podobnie z resztą).

Czyli mam rozumieć, że we wszystkich deklaracjach tablic mam zmienić ich nazwę na IntArray100? Z tych nazw korzysta dalsza część programu, więc to byłoby chyba błędne ;3

2.Mylisz typy ze zmiennymi.

Mógłbyś rozwinąć? Zmiennie to wg mnie wartości, na których są wykonywane działania i dzięki temu się zmieniają. A po nagłówku var są deklarowane ich typy: zmienna typ. A jak już, to nie potrafię tego zauważyć w kodzie

3.Beznadziejne formatowanie kodu.

Z powodu punktu trzeciego nic więcej nie można stwierdzić; jeżeli masz Lazarusa, jest tam wbudowane narzędzie do formatowania kodu - użyj go.

OKE, to na koniec, na razie te błędy muszę pokminić

0
type
tablica1=array[1..100] of integer;
tablica2=array[1..25,1..25] of integer;
 
tablica_z_klawiatury1_wypisz=array[1..25] of integer;
tablica_z_klawiatury2_wypisz=array[1..25,1..25] of integer;
tablica_losowo1wypisz_wypisz=array[1..25] of integer;
tablica_losowo2wypisz_wypisz=array[1..25,1..25] of integer;

To są wszystko jedynie typy, nie zmienne.
Do typów nie możesz niczego przypisywać, a co robisz np.tutaj:

tablica_z_klawiatury1_wypisz[i]:=tablica[i];

Ponadto np.to nie ma sensu:

var
tablica1:=tablica; // ?
dl,i:integer;

Czyli mam rozumieć, że we wszystkich deklaracjach tablic mam zmienić ich nazwę na IntArray100?

Masz rozumieć tyle, że nazwa identyfikatora nie powinna być dłuższa, niż 25 znaków...

OKE, to na koniec, na razie te błędy muszę pokminić

Podczas gdy formatowanie jest najważniejsze (i relatywnie najprostsze do poprawienia); jeżeli korzystasz z Lazarusa, to masz tam nawet wbudowany formatter kodu.

0
thelord napisał(a):

1a) złe nazwy typów; najlepiej byłoby coś w rodzaju IntArray100 = Array[1..100] of Integer; (podobnie z resztą).

Czyli mam rozumieć, że we wszystkich deklaracjach tablic mam zmienić ich nazwę na IntArray100? Z tych nazw korzysta dalsza część programu, więc to byłoby chyba błędne ;3
Masz użyć mózgu aby zrozumieć:
IntArray100 = Array[1..100] of Integer;
DblArray30 = Array[1..30] of Double;
IntArray25x25 = Array[1..25,1..25] of Integer;
itp.

thelord napisał(a):

2.Mylisz typy ze zmiennymi.
Mógłbyś rozwinąć? Zmiennie to wg mnie wartości, na których są wykonywane działania i dzięki temu się zmieniają. A po nagłówku var są deklarowane ich typy: zmienna typ. A jak już, to nie potrafię tego zauważyć w kodzie

A nie musisz, kompilator ci to powie.

thelord napisał(a):

3.Beznadziejne formatowanie kodu.
OKE, to na koniec, na razie te błędy muszę pokminić
Nie, to na początek. Jak sformatujesz po ludzku połowę błędów natychmiast sam zauważysz oraz każdy z fachowców na tym forum (i nie tylko na tym) z pierwszego rzutu oka zauważy większość błędów (resztę z drugiego rzutu ;] ).

0

Aha okej, a więc do typów nie da się przypisać wartości, więc potrzeba mi tutaj jakiejś zmiennej, do której będę mógł przypisać jakąś wartość i potem korzystać z tego we wszystkich procedurach, bo jak widzisz w ostatnich procedurach próbuję właśnie coś takiego zrobić albo źle odebrałem polecenie zadania

Podczas gdy formatowanie jest najważniejsze (i relatywnie najprostsze do poprawienia); jeżeli korzystasz z Lazarusa, to masz tam nawet wbudowany formatter kodu.

Lazarus ma 100 mb ;3

Masz użyć mózgu aby zrozumieć:
IntArray100 = Array[1..100] of Integer;
DblArray30 = Array[1..30] of Double;
IntArray25x25 = Array[1..25,1..25] of Integer;

Zrozumiałem, że to tylko po to, aby pozbyć się tych więcej niż 25 znakowych nazw.

Funkcje wyszukującą najmniejszy elemt w tablicy i funkcje wyszukującą największy element w tablicy

A ja widzę same procedury.

Na funkcjach nie dałoby się chyba tego zrobić

Z tą nową wiedzą widzę, że muszę przerobić cały program, bo praktycznie cały składa się z przypisywania wartości typom, więc moje pytanie, gdzie można deklarować zmienne, z których mogą korzystać wszystkie procedury?

0

Z tą nową wiedzą widzę, że muszę przerobić cały program, bo praktycznie cały składa się z przypisywania wartości typom, więc moje pytanie, gdzie można deklarować zmienne, z których mogą korzystać wszystkie procedury?

W sekcji interface lub implementations - do wyboru.

0

Okej, to idę go przerobić

0

Gdzie jest opcja formatowania w lazarusie?

Po przeróbce wygląda to tak:

unit tablice;
interface
uses CRT;
type
tablica1=array[1..100] of integer;
tablica2=array[1..25,1..25] of integer;







procedure tablica_z_klawiatury1;
procedure tablica_z_klawiatury2;
procedure tablica_losowo1;
procedure tablica_losowo2;
procedure tablica_z_klawiatury1_wypisz;
procedure tablica_z_klawiatury2_wypisz;
procedure tablica_losowo1_wypisz;
procedure tablica_losowo2_wypisz;
procedure wartosc_najmniejsza;
procedure wartosc_najwieksza;
procedure sortowanie_babelkowe;

implementation
var
tablica_z_klawiatury1_wypisz=array[1..25] of integer;
tablica_z_klawiatury2_wypisz=array[1..25,1..25] of integer;
tablica_losowo1wypisz_wypisz=array[1..25] of integer;
tablica_losowo2wypisz_wypisz=array[1..25,1..25] of integer;

procedure tablica_z_klawiatury1;
var
dl,i:integer;
begin
writeln('podaj wielkosc tablicy, nie wiecej niz 100');
readln(dl);
writeln('Podaj wartosci tablicy');
for i:=1 to dl do begin
        read (tablica1[i]);
end;
tablica_z_klawiatury1_wypisz[i]:=tablica1[i];
readkey;
end;





procedure tablica_z_klawiatury2;
var

k,w,i,j:integer;
begin
clrscr;
writeln('podaj ilosc kolumn, nie wiecej niz 25');
readln(k);
writeln('podaj ilosc wierszy, nie wiecej niz 25');
readln(w);
writeln('  ');
for i:=1 to w do begin
for j:=1 to k do begin
writeln('podaj wartosc dla kolumny ',j,' i dla wiersza ',i);
read(tablica2[i][j]);
end;
tablica_z_klawiatury2_wypisz[i][j]:=tablica2[i][j];
readkey;
end;




procedure tablica_losowo1;
var
zk,i,dl:integer;
begin
clrscr;
writeln('podaj wielkosc tablicy, nie wiecej niz 100');
readln(dl);
writeln('podaj zakres wartosci');
readln(zk);
randomize;
for i:=1 to dl do begin
       tablica1[i]:=random(zk);
end;
tablica_losowo1wypisz_wypisz[i]:=tablica1[i];
readkey;
end;

clrscr;
writeln('tablica ma wartosci:');
for i:=1 to dl do begin
if (i<dl) then
write(tablica_losowo1wypisz_wypisz[i],' ; ')
else
writeln(tablica_losowo1wypisz_wypisz[i]);
end;
readkey
end;



procedure tablica_losowo2;
var
k,w,zk,i,j:integer;
tablica2:=tab;
begin
clrscr;

writeln('podaj ilosc kolumn, nie wiecej niz 25');
readln(k);
writeln('podaj ilosc wierszy, nie wiecej niz 25');
readln(w);
writeln('podaj zakres wartosci');
readln(zk);
writeln('  ');
randomize;
for i:=1 to w do begin
for j:=1 to k do begin
tablica2[i][j]:=random(zk);
end;
tablica_losowo2wypisz_wypisz[i][j]:=tablica2[i][j];
readkey;
end;





procedure tablica_z_klawiatury1_wypisz;
var
i,j,dl:integer;
begin
clrscr;
writeln('tablica ma wartosci:');
for i:=1 to dl do begin
if (i<dl) then
write(tablica_z_klawiatury1_wypisz[i],' ; ')
else
writeln(tablica_z_klawiatury1_wypisz[i]);
readkey;
end;

procedure tablica_z_klawiatury2wypisz;
var
i,j,k:integer;
begin
writeln(' ');
for i:=1 to w do begin
for j:=1 to k do begin
if (j<k) then
write(tablica_z_klawiatury2_wypisz[i,j],' ; ')
else
writeln(tablica_z_klawiatury2_wypisz[i,j]);
end;
end;
readkey;
end;

procedure tablica_losowo1_wypisz;
var
i,dl:integer;
begin
clrscr;
writeln('tablica ma wartosci:');
for i:=1 to dl do begin
if (i<dl) then
write(tablica_losowo1wypisz_wypisz[i],' ; ')
else
writeln(tablica_losowo1wypisz_wypisz[i]);
end;
readkey
end;

procedure tablica_losowo2_wypisz;
var
i,j,k:integer;

begin
for i:=1 to w do begin
for j:=1 to k do begin
if (j<k) then
write(tablica_losowo2wypisz_wypisz[i,j],' ; ')
else
writeln(tablica_losowo2wypisz_wypisz[i,j]);
end;
end;
readkey
end;

procedure wartosc_najmniejsza;
var
const IMAX=100;
min1,min2,i,a:integer;

begin
read(tablica_z_klawiatury1_wypisz[i]);
if (a[1] < a[2]) then begin
    min1 := a[1];
    min2 := a[2];
  end
  else begin
    min1 := a[2];
    min2 := a[1];
  end;

  for i := 3 to IMAX do begin
    if (a[i] <= min1) then begin
      min2 := min1;
      min1 := a[i];
    end
    else if (a[i] <= min2) then
      min2 := a[i];
  end;
  WriteLn('Najmniejsza liczba podanego ciagu to ',  min1);
  readkey;

end;



procedure wartosc_najwieksza;
var
max,n,i:integer;

begin

read(tablica_z_klawiatury1_wypisz[i]);
max := tablica_z_klawiatury1_wypisz[1];
for i:=2 to n do
  if tablica_z_klawiatury1_wypisz[i]>max then
    max := tablica_z_klawiatury1_wypisz[i];
writeln('Największy element = ',max);
readkey;
end;

procedure sortowanie_babelkowe;
var

begin

d:=2
read(tablica_z_klawiatury1_wypisz[i]);
for b:=1 to a do begin
                        if (tablica_z_klawiatury1_wypisz[i]>(tablica_z_klawiatury1_wypisz[i+1] then begin
                        e:=tab[d];
                        end;
                d:=d+1;
                end;
                writeln ('',e);
                for b:=1 to a do begin
                write (tablica_z_klawiatury1_wypisz[i],' ');
                end;
        readkey;
end.


 

Widzicie gdzieś jeszcze błędy oprócz za długich nazw?

0

Źle deklarujesz zmienne globalne.

0

W sekcji implementation jak radziłeś :P

0

tablica_z_klawiatury1_wypisz,tablica_losowo1wypisz_wypis:tablica1;
tablica_z_klawiatury2_wypisz,tablica_losowo2wypisz_wypis:tablica2;

0

No okej teraz ta część wygląda tak:

implementation
var
tablica_z_klawiatury1_wypisz,tablica_losowo1wypisz_wypisz:tablica1;
tablica_z_klawiatury2_wypisz,tablica_losowo2wypisz_wypisz:tablica2; 

Jeszcze ktoś coś dostrzega?

0

Lazaurus coś mi sformatować nie chce:

Jedi Code Format---> Current Editor Window

0

Spróbowałem sformatować po swojemu:

unit tablice;
interface
uses CRT;

type
tablica1=array[1..100] of integer;
tablica2=array[1..25,1..25] of integer;

procedure tablica_z_klawiatury1;
procedure tablica_z_klawiatury2;
procedure tablica_losowo1;
procedure tablica_losowo2;
procedure tablica_z_klawiatury1_wypisz;
procedure tablica_z_klawiatury2_wypisz;
procedure tablica_losowo1_wypisz;
procedure tablica_losowo2_wypisz;
procedure wartosc_najmniejsza;
procedure wartosc_najwieksza;
procedure sortowanie_babelkowe;

implementation

var
tablica_z_klawiatury1_wypisz,tablica_losowo1wypisz_wypisz:tablica1;
tablica_z_klawiatury2_wypisz,tablica_losowo2wypisz_wypisz:tablica2;




procedure tablica_z_klawiatury1;
var
dl,i:integer;

begin
writeln('podaj wielkosc tablicy, nie wiecej niz 100');
readln(dl);
writeln('Podaj wartosci tablicy');
        for i:=1 to dl do begin
        read (tablica1[i]);
end;
tablica_z_klawiatury1_wypisz[i]:=tablica1[i];
readkey;
end;





procedure tablica_z_klawiatury2;
var
k,w,i,j:integer;

begin
clrscr;
writeln('podaj ilosc kolumn, nie wiecej niz 25');
readln(k);
writeln('podaj ilosc wierszy, nie wiecej niz 25');
readln(w);
writeln('  ');
     for i:=1 to w do begin
     for j:=1 to k do begin
     writeln('podaj wartosc dla kolumny ',j,' i dla wiersza ',i);
read(tablica2[i][j]);
end;
tablica_z_klawiatury2_wypisz[i][j]:=tablica2[i][j];
readkey;
end;




procedure tablica_losowo1;
var
zk,i,dl:integer;

begin
clrscr;
writeln('podaj wielkosc tablicy, nie wiecej niz 100');
readln(dl);
writeln('podaj zakres wartosci');
readln(zk);
     randomize;
     for i:=1 to dl do begin
     tablica1[i]:=random(zk);
end;
tablica_losowo1wypisz_wypisz[i]:=tablica1[i];
readkey;
end;

clrscr;
writeln('tablica ma wartosci:');
     for i:=1 to dl do begin
     if (i<dl) then
     write(tablica_losowo1wypisz_wypisz[i],' ; ')
        else
        writeln(tablica_losowo1wypisz_wypisz[i]);
     end;
readkey;
end;




procedure tablica_losowo2;
var
k,w,zk,i,j:integer;

begin
clrscr;
writeln('podaj ilosc kolumn, nie wiecej niz 25');
readln(k);
writeln('podaj ilosc wierszy, nie wiecej niz 25');
readln(w);
writeln('podaj zakres wartosci');
readln(zk);
writeln('  ');
    randomize;
    for i:=1 to w do begin
    for j:=1 to k do begin
    tablica2[i][j]:=random(zk);
    end;
tablica_losowo2wypisz_wypisz[i][j]:=tablica2[i][j];
readkey;
end;




procedure tablica_z_klawiatury1_wypisz;
var
i,j,dl:integer;

begin
clrscr;
writeln('tablica ma wartosci:');
    for i:=1 to dl do begin
    if (i<dl) then
    write(tablica_z_klawiatury1_wypisz[i],' ; ')
       else
       writeln(tablica_z_klawiatury1_wypisz[i]);
readkey;
end;

procedure tablica_z_klawiatury2wypisz;
var
i,j,k:integer;
     
begin
writeln(' ');
     for i:=1 to w do begin
     for j:=1 to k do begin
     if (j<k) then
     write(tablica_z_klawiatury2_wypisz[i,j],' ; ')
         else
         writeln(tablica_z_klawiatury2_wypisz[i,j]);
     end;
readkey;
end;




procedure tablica_losowo1_wypisz;
var
i,dl:integer;

begin
clrscr;
writeln('tablica ma wartosci:');
   for i:=1 to dl do begin
   if (i<dl) then
   write(tablica_losowo1wypisz_wypisz[i],' ; ')
      else
      writeln(tablica_losowo1wypisz_wypisz[i]);
   end;
readkey
end;




procedure tablica_losowo2_wypisz;
var
i,j,k:integer;

begin
for i:=1 to w do begin
for j:=1 to k do begin
if (j<k) then
write(tablica_losowo2wypisz_wypisz[i,j],' ; ')
   else
   writeln(tablica_losowo2wypisz_wypisz[i,j]);
end;
readkey
end;




procedure wartosc_najmniejsza;
var
const IMAX=100;
min1,min2,i,a:integer;

begin
read(tablica_z_klawiatury1_wypisz[i]);
if (a[1] < a[2]) then begin
    min1 := a[1];
    min2 := a[2];
  end
  else begin
    min1 := a[2];
    min2 := a[1];
  end;

  for i := 3 to IMAX do begin
    if (a[i] <= min1) then begin
      min2 := min1;
      min1 := a[i];
    end
    else if (a[i] <= min2) then
      min2 := a[i];
  end;
  WriteLn('Najmniejsza liczba podanego ciagu to ',  min1);
  readkey;

end;




procedure wartosc_najwieksza;
var
max,n,i:integer;

begin
read(tablica_z_klawiatury1_wypisz[i]);
max := tablica_z_klawiatury1_wypisz[1];
for i:=2 to n do
  if tablica_z_klawiatury1_wypisz[i]>max then
    max := tablica_z_klawiatury1_wypisz[i];
writeln('Największy element = ',max);
readkey;
end;




procedure sortowanie_babelkowe;
var
d,b,e:integer;
begin

d:=2
read(tablica_z_klawiatury1_wypisz[i]);
for b:=1 to a do begin
                        if (tablica_z_klawiatury1_wypisz[i]>(tablica_z_klawiatury1_wypisz[i+1] then begin
                        e:=tab[d];
                        end;
                d:=d+1;
                end;
                writeln ('',e);
                for b:=1 to a do begin
                write (tablica_z_klawiatury1_wypisz[i],' ');
                end;
        readkey;
end. 
0
procedure tablica_losowo1_wypisz;
var i,dl:integer;
begin
  clrscr;
  writeln('tablica ma wartosci:');
  for i:=1 to dl do
  begin
    if i<dl then write(tablica_losowo1wypisz_wypisz[i],' ; ')
    else writeln(tablica_losowo1wypisz_wypisz[i]);
  end;
  readkey;
end;

Po sformatowaniu od razu widać że dl musi być zmienną globalną (najgorsze rozwiązanie) lub przekazana jako parametr. czyli powinna wyglądać mniej więcej tak:

procedure tablica_losowo1_wypisz(dl:Integer);
var i:Integer;
const delim:array[Boolean]of String=('','; ');
begin
  clrscr;
  writeln('tablica ma wartosci:');
  for i:=1 to dl do writeln(delim[i>1],tablica_losowo1wypisz_wypisz[i]);
  readkey;
end;

lub jeszcze lepiej tak:

procedure tablica_losowo1_wypisz(const tb:tablica1;dl:Integer);
var i:Integer;
const delim:array[Boolean]of String=('','; ');
begin
  clrscr;
  writeln('tablica ma wartosci:');
  for i:=1 to dl do writeln(delim[i>1],tb[i]);
  readkey;
end;

Oczywiście trzeba też zmienić sposób wywołania.

2

Zdziwiony jestem czemu nikt pytacza jeszcze nie wysłał do przeczytania kursu...

Gość nie wie jak sformatować kod, nie widzi różnicy między typem zmiennej a samą zmienną i napisał potworka nie dlatego, że coś umie i napisał jak umie ale moim zdaniem nic nie umie i sklecił coś z neta ewentualnie walił na oślep w klawisze po czym cisnął F9 wyskoczyła masa błędów to napisał na forum z pytaniem co jest źle...

0

Zdziwiony jestem czemu nikt pytacza jeszcze nie wysłał do przeczytania kursu...

Gość nie wie jak sformatować kod, nie widzi różnicy między typem zmiennej a samą zmienną i napisał potworka nie dlatego, że coś umie i napisał jak umie ale moim zdaniem nic nie umie i sklecił coś z neta ewentualnie walił na oślep w klawisze po czym cisnął F9 wyskoczyła masa błędów to napisał na forum z pytaniem co jest źle...

Ej no już widzę różnicę między typem zmiennej, a zmienną ;3 Masz rację, lepiej przeczytać sobie jakiegoś dobrego kursa niżeli męczyć ludzi na forum, ale w moim przypadku byłoby to dobre, gdybym się interesował pascalem chociaż trochę. Te zadanie mam na jutro, po fakcie już nawet do niego nie wrócę. Przynajmniej dzięki wam chociaż mniej będę się wstydził za siebie ;) I tak sporo się od was nauczyłem. Tak czy siak za potworka dostałbym 1+, za to, że przynajmniej się wysiliłem, a z wami być może będzie jakieś 2 ;) , jeśli dobrze pójdzie

Spróbowałem sformatować twoim sposobem ;D :

unit tablice;
interface
uses CRT;

type
tablica1=array[1..100] of integer;
tablica2=array[1..25,1..25] of integer;

procedure tablica_z_klawiatury1;
procedure tablica_z_klawiatury2;
procedure tablica_losowo1;
procedure tablica_losowo2;
procedure tabklawwyp1;
procedure tabklawwyp2;
procedure tablica_losowo1_wypisz;
procedure tablica_losowo2_wypisz;
procedure wartosc_najmniejsza;
procedure wartosc_najwieksza;
procedure sortowanie_babelkowe;

implementation

var
tabklawwyp1,tablica_losowo1wypisz_wypisz:tablica1;
tabklawwyp2,tablica_losowo2wypisz_wypisz:tablica2;




procedure tablica_z_klawiatury1;
var
dl,i:integer;

begin
 writeln('podaj wielkosc tablicy, nie wiecej niz 100');
 readln(dl);
 writeln('Podaj wartosci tablicy');
 for i:=1 to dl do begin
  read (tablica1[i]);
  end;
 tablica_z_klawiatury1_wypisz[i]:=tablica1[i];
 readkey;
end;





procedure tablica_z_klawiatury2;
var
k,w,i,j:integer;

begin
 clrscr;
 writeln('podaj ilosc kolumn, nie wiecej niz 25');
 readln(k);
 writeln('podaj ilosc wierszy, nie wiecej niz 25');
 readln(w);
 writeln('  ');
  for i:=1 to w do begin
  for j:=1 to k do begin
  writeln('podaj wartosc dla kolumny ',j,' i dla wiersza ',i);
  read(tablica2[i][j]);
  end;
tablica_z_klawiatury2_wypisz[i][j]:=tablica2[i][j];
readkey;
end;




procedure tablica_losowo1;
var
zk,i,dl:integer;

begin
 clrscr;
 writeln('podaj wielkosc tablicy, nie wiecej niz 100');
 readln(dl);
 writeln('podaj zakres wartosci');
 readln(zk);
 randomize;
  for i:=1 to dl do begin
  tablica1[i]:=random(zk);
  end;
tablica_losowo1wypisz_wypisz[i]:=tablica1[i];
readkey;
end;

clrscr;
writeln('tablica ma wartosci:');
 for i:=1 to dl do begin
 if (i<dl) then
 write(tablica_losowo1wypisz_wypisz[i],' ; ')
 else
 writeln(tablica_losowo1wypisz_wypisz[i]);
 end;
readkey;
end;




procedure tablica_losowo2;
var
k,w,zk,i,j:integer;

begin
 clrscr;
 writeln('podaj ilosc kolumn, nie wiecej niz 25');
 readln(k);
 writeln('podaj ilosc wierszy, nie wiecej niz 25');
 readln(w);
 writeln('podaj zakres wartosci');
 readln(zk);
 writeln('  ');
  randomize;
  for i:=1 to w do begin
  for j:=1 to k do begin
  tablica2[i][j]:=random(zk);
  end;
tablica_losowo2wypisz_wypisz[i][j]:=tablica2[i][j];
readkey;
end;




procedure tabklawwyp1;
var
i,j,dl:integer;

begin
 clrscr;
 writeln('tablica ma wartosci:');
  for i:=1 to dl do begin
  if (i<dl) then
  write(tabklawwyp1[i],' ; ')
  else
  writeln(tabklawwyp1[i]);
readkey;
end;

procedure tabklawwyp2;
var
i,j,k:integer;
     
begin
 writeln(' ');
 for i:=1 to w do begin
 for j:=1 to k do begin
 if (j<k) then
 write(tabklawwyp2[i,j],' ; ')
 else
 writeln(tabklawwyp2[i,j]);
 end;
readkey;
end;




procedure tablica_losowo1_wypisz(const tb:tablica1;dl:Integer);
var i:Integer;
const delim:array[Boolean]of String=('','; ');
begin
 clrscr;
 writeln('tablica ma wartosci:');
 for i:=1 to dl do writeln(delim[i>1],tb[i]);
readkey;
end;




procedure tablica_losowo2_wypisz;
var
i,j,k:integer;

begin
 for i:=1 to w do begin
 for j:=1 to k do begin
 if (j<k) then
 write(tablica_losowo2wypisz_wypisz[i,j],' ; ')
 else
 writeln(tablica_losowo2wypisz_wypisz[i,j]);
end;
readkey
end;




procedure wartosc_najmniejsza;
var
const IMAX=100;
min1,min2,i,a:integer;

begin
 read(tabklawwyp1[i]);
  if (a[1] < a[2]) then begin
  min1 := a[1];
  min2 := a[2];
  end
  else begin
  min1 := a[2];
  min2 := a[1];
end;

for i := 3 to IMAX do begin
if (a[i] <= min1) then begin
min2 := min1;
min1 := a[i];
end
else if (a[i] <= min2) then
min2 := a[i];
end;
WriteLn('Najmniejsza liczba podanego ciagu to ',  min1);
readkey;
end;




procedure wartosc_najwieksza;
var
max,n,i:integer;

begin
 read(tabklawwyp1[i]);
 max := tabklawwyp1[i];
  for i:=2 to n do
  if tabklawwyp1[i]>max then
  max := tabklawwyp1[i];
  writeln('Największy element = ',max);
readkey;
end;




procedure sortowanie_babelkowe;
var
d,b,e:integer;
begin

 d:=2
 read(tabklawwyp1[i]);
 for b:=1 to a do begin
 if (tabklawwyp1[i]>(tabklawwyp1[i+1] then begin
 e:=tab[d];
 end;
d:=d+1;
end;
writeln ('',e);
 for b:=1 to a do begin
 write (tabklawwyp1[i],' ');
 end;
readkey;
end.

Oczywiście trzeba też zmienić sposób wywołania.

Nie rozumiem.

0
procedure sortowanie_babelkowe;
var
d,b,e:integer;
begin
 
 d:=2
 read(tabklawwyp1[i]);
 for b:=1 to a do begin
 if (tabklawwyp1[i]>(tabklawwyp1[i+1] then begin
 e:=tab[d];
 end;
d:=d+1;
end;
writeln ('',e);
 for b:=1 to a do begin
 write (tabklawwyp1[i],' ');
 end;
readkey;
end.
1

@thelord: jakim cudem może Ci nie działać formatowanie w Lazarusie? Przed chwilą sprawdziłem to w 64 biotwej wersji 1.0 na standardowych ustawieniach (mam tylko włączone stripowanie poza standardowymi rzeczami w domyśłnych opcjach projektów) i elegancko formatuje mi kod. Poza tym, co to za problem, że instalka Lazarusa ma 100 iles MB. Piszesz keygen, który powinien być w WinAPI czy potrzebujesz jakiegoś porządnego IDE i kompilatora? I według mnie za kursy należało się brać w trakcie zajęć z programowania, aby uzupełnić swoją wiedzę. Chociaż słowo uzupełnić jest tutaj na wyrost, bo Twoja wiedza jest znikoma, o ile nie żadna. I tak pozostali odpisujący w tym wątku robią Tobie uprzejmośc, bo odpowiedzi z ciągle niesformatowanym kodem mimo prośb o jego formatowanie powinno się ignorować i tyle.

0

@thelord: jakim cudem może Ci nie działać formatowanie w Lazarusie? Przed chwilą sprawdziłem to w 64 biotwej wersji 1.0 na standardowych ustawieniach (mam tylko włączone stripowanie poza standardowymi rzeczami w domyśłnych opcjach projektów) i elegancko formatuje mi kod.

No nie wiem, nie działa, może coś źle robiłem?

Poza tym, co to za problem, że instalka Lazarusa ma 100 iles MB.

Skoro próbowałem formatować kod w Lazarusie, to co za problem, że instalka ma 100MB? Pytanie w ogóle bez sensu...

I według mnie za kursy należało się brać w trakcie zajęć z programowania, aby uzupełnić swoją wiedzę.

Wiedza się uzupełni w praniu

I tak pozostali odpisujący w tym wątku robią Tobie uprzejmośc, bo odpowiedzi z ciągle niesformatowanym kodem mimo prośb o jego formatowanie powinno się ignorować i tyle.

Nadal brzydko sformatowany? To też stwierdzenie bez sensu, czy gdziekolwiek zignorowałem prośbę o sformatowanie kodu?

0
thelord napisał(a):

I według mnie za kursy należało się brać w trakcie zajęć z programowania, aby uzupełnić swoją wiedzę.

Wiedza się uzupełni w praniu

No chłopie to idź "prać" lub czytać instrukcję obsługi "pralki" a nie jęczysz na forum, że nie umiesz "pralki" włączyć. Chociaż na mój gust to Ty nawet nie wiesz jak "pralka" wygląda...

0

No chłopie to idź "prać" lub czytać instrukcję obsługi "pralki" a nie jęczysz na forum, że nie umiesz "pralki" włączyć. Chociaż na mój gust to Ty nawet nie wiesz jak "pralka" wygląda...

Nie rozumiesz, te zaległości to stąd, że miałem drobne problemy i z nauką nie nadążałem, ale sobie z tym poradziłem i myślę, że sama systematyczność wystarczy do nadrobienia ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1