zadania z Pascala z parametrem

zzuzzia93
Użytkownik
Użytkownik
Posty: 28
Rejestracja: 24 lis 2010, o 17:53
Płeć: Kobieta
Lokalizacja: Rybnik

zadania z Pascala z parametrem

Post autor: zzuzzia93 »

Proszę o sprawdzenie i o ewentualne przeróbki tych 4 zadań z Pascala.

1.Program umożliwiający wprowadzenie n liczb, a nastepnie zliczajacy liczby ujemne i nieujemne

Kod: Zaznacz cały

program T8_Z4;
uses Crt;
var
 i,n:integer;
 u,nu:integer;
 x:integer;
 znak: char;

procedure Zliczaj(x:integer);
begin
 if x<0 then
    u:=u+1
        else
        nu:=nu+1;
end;

begin
 repeat
  ClrScr;
  u:=0;
  nu:=0;
  Write('Podaj liczbe elementow: ');
  ReadLn(n);
  for i:=1 to n do
                begin
		 Write('Podaj liczbe: ');
		 ReadLn(x);
		 Zliczaj(x);
                end;
  WriteLn('Liczba elementow ujemnych: ', u);
  WriteLn('Liczba elementow nieujemnych: ', nu);
  Write ('Czy chcesz kontynuowac T/N? '); readln(znak);
 until(Upcase(znak)='N');
end.
2. Program rysujacy trójkąt prostokątny o żądanej długości boków. Program ma być napisany z wykorzystaniem procedur z przekazywaniem parametrów przez zmienna.
Założenia:
a)użytkownik ma możliwość podania symbolu z jakiego zbudowany jest trójkąt
b)użytkownik podaje długości boków przyprostokątnych ( przyprostokątne a i b są sobie równe ale mniejsze od 25):

Kod: Zaznacz cały

program T8_Z7;
uses Crt;
var
 i,n:integer;
 symbol,znak: char;

procedure Pytaj(var n:integer;
                var symbol:char);
begin
 repeat
  Write('Podaj dlugosc boku trojkata prostokatnego (1-25): '); ReadLn(n);
  Write('Podaj symbol z ktorego ma powstac trojkat prostokatny: '); ReadLn(symbol);
 until (n>=1) and (n<25);
end;

procedure Wiersz(n:integer; symbol:char);
var
 j:integer;
begin
 for j:=1 to n do
	       Write(symbol);
               WriteLn;
end;

begin
 repeat
  ClrScr;
  Pytaj(n, symbol);
  for i:=1 to n do
                    Wiersz(i,symbol);
 Write('Czy chcesz kontynuowac T/N? '); readln(znak);
 until (Upcase(znak)='N')
end.
3. Program w TP umożliwiający wyznaczenie n-tego wyrazu ciągu Fibonacciego. Wykorzystaj do tego celu funkcję. Wyświetlenie dla wyniku n=4 powinno wygladać w ten sposób:

Kod: Zaznacz cały

F(0)=1
F(1)=1
F(2)=2
F(3)=3
Fib(4)=5

Kod: Zaznacz cały

program T10_c10;
uses Crt;
var
 i,k:integer;
 znak:char;

function Fib(n:integer):longint;
var
i,p,pp,wynik:longint;
begin
 if n<2 then
        Fib:=1
        else
	begin
         p:=1;
         pp:=1;
         for i:=2 to n do
                       begin
                        wynik:=p+pp;
			pp:=p;
			p:=wynik;
                       end;
		       Fib:=wynik;
	end;
end;

begin
 repeat
 ClrScr;
 Write('Podaj ile wyrazow ciagu Fibonacciego chcesz wyswietlic? '); readln(k);
 begin
  for i:=0 to k do
                WriteLn('F(',i,')=',Fib(i));
 end;
 Write('Czy chcesz kontynuowac T/N? '); readln(znak);
 until (Upcase(znak)='N');
end.
4.A teraz mam zrobić program obliczjacy maksimum z n liczb. Realizacja obliczeń ma się odbyć z wykorzystaniem funkcji. A ja mam tylko taki program na minimum z n liczb:

Kod: Zaznacz cały

program T10_p4;
uses Crt;
var
 L_El,Min:integer;
 znak:char;

function Min1(n:integer):integer;
var
 i,x,min_x:integer;
begin
 min_x:=MaxInt;		{ Najwieksza mozliwa liczba typu integer}
 for i:=1 to n do
               begin
                Write('Podaj liczbe ',i,': '); ReadLn(x);
                if x<min_x then
                          min_x:=x;
               end;
               Min1:=min_x;
end;

function Min2(n:integer):integer;
var
 i,x,min_x:integer;
begin
 for i:=1 to n do
                begin
                 Write('Podaj liczbe ',i,': '); ReadLn(x);
		 if i=1 then
			min_x:=x
		        else
			if x<min_x then
				  min_x:=x;
	        end;
	        Min2:=min_x;
end;

begin
 repeat
   ClrScr;
   Write('Podaj liczbe elementow: '); ReadLn(L_El);
   WriteLn('Podaj elementy:');
   Min:=Min1(L_El);
   WriteLn('Minimum z ',L_El,' elementow to ',Min);
   WriteLn('Podaj elementy:');
   Min:=Min2(L_El);
   WriteLn('Minimum z ',L_El,' elementow to ',Min);
 Write('Czy chcesz kontynuowac T/N? '); ReadLn(znak);
 Until(Upcase(znak)='N');
end.
Jak z tego zrobić maksimum?
A czy te poprzednie programy mam dobrze?
Ostatnio zmieniony 27 lut 2011, o 12:59 przez Afish, łącznie zmieniany 1 raz.
Powód: Kody programów umieszczaj w znacznikach [code][/code]
ODPOWIEDZ