Metody Programowania - Lista 10


Zadanie 1

Wzorując się na przykładowym programie `schemademo.pas' (z katalogu `/usr/share/doc/gpc-2.95/examples/') napisać procedurę w Pascalu która oblicza oblicza sumę elementów wektora, akceptującą wektory dowolnej długości (argument ma być schematem przekazywanym w trybie `var'). Podobnie, napisać procedurę która oblicza oblicza sumę elementów macierzy `n' na `m' akceptującą macierze z dowolnym `n' i `m'.

Zadanie 2

Bazując na podanym szkielecie:
program nlgoto;
label 999;
procedure p(i:integer);
begin
  if i = 0 then goto 999
  else writeln('Normalne wykonanie')
end;
begin
  p(0);
  Halt;
999:
  writeln('i było zerem')
end
.
i przykładzie z `schemademo.pas' napisać procedure obliczania iloczynu skalarnego wektorów dowolnej długości oraz procedurę mnożenia macierzy. W przypadku niezgodności wymiarów wyskoczyć do etykiety w programie głównym i tam wypisać komunikat o błędzie.

Zadanie 3

Przetłumaczyć na Pascal wybrane rozwiązania zadań z Listy 3

Zadanie 4

Obejrzeć sobie przykładowy program w C wywołujący procedurę w Pascalu (pozycja `jul_dat' z strony wykładu albo program `gpc_c_pas.pas' z przykładów do gpc). Napisać własną procedurę w Pascalu i sprawdzić jak ona działa.

Zadanie 5

Przekompilować "pusty" program w Pascalu:
program null;
begin
end
.
w opcją `-S'. Porównać z "pustym" programen w C. Dlaczego kod assemblerowy z Pascala jest bardziej skomplikowany?