Zadania do egzaminu

Nasza ocena:

3
Pobrań: 49
Wyświetleń: 889
Komentarze: 0
Notatek.pl

Pobierz ten dokument za darmo

Podgląd dokumentu
Zadania do egzaminu - strona 1 Zadania do egzaminu - strona 2 Zadania do egzaminu - strona 3

Fragment notatki:

ZADANIE 1. Poniższy program ma za zadanie wypełnić macierz kwadratową o wymiarze n = 8 liczbami losowymi (random(10)/2) oraz zapisanie jej do pliku (wiersz po wierszu. Macierz ta zostanie zapisana na dysku „C” w pliku tekstowym „m a cierz.txt”. W kolejnym etapie program odczytuje macierz z pliku oraz drukuje ją na ekranie monitora. Następnie następuje dopisanie komentarza o wymiarze macierzy na końcu pl i ku writeln(f,' powyzsza macie rz jest wymiarów ',n,' x ',n);. Po czym następuje ponowne odczytanie macierz y wraz z komentarzem z pliku „macierz.txt”. program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type macierz=array [1..100, 1..100] of real;
var A:macierz;
i,j,n:integer;
path,komentarz:string;
f:text;
begin
n:=8; //wymiar macierzy kwadratowej
path:='c:/macierz.txt'; //zmienna przechowywujaca sciezke do pliku
//******************************************************************************
assign(f,path); //skojarzenie zmiennej plikowej f z fizycznym zbiorem
rewrite(f); //otwracie pliku do zapisu
for i:=1 to n do
begin
for j:=1 to n do
begin
a[i,j]:=random(10)/2; // wypelnia macierz elementami losowymi
write(f,a[i,j]:7:2); // zapisuje do pliku macierz wiersz po wierszu
end;
writeln(f);
end;
closefile(f); //zamkniecie pliku
//******************************************************************************
assign(f,path); //skojarzenie zmiennej plikowej f z fizycznym zbiorem
reset(f); //otwracie pliku do odczytu
for i:=1 to n do
begin
for j:=1 to n do
begin
read(f,a[i,j]); // odczyt z pliku
write(a[i,j]:7:2); // wypisanie na ekranie
end;
readln(f); // pzrejscie do nastepnego wiersza w pliku
writeln; // przejscie do nastepnego wiersza na ekranie
end;
closefile(f); //zamkniecie pliku
//******************************************************************************
assign(f,path); //skojarzenie zmiennej plikowej f z fizycznym zbiorem
append(f); //otwracie pliku do dopisania
writeln(f,' powyzsza macierz jest wymiarów ',n,' x ',n); // dopisanie na koncu pliku komentarza o wimiarze macierzy
closefile(f); //zamkniecie pliku
//******************************************************************************
WRITELN;
//******************************************************************************
assign(f,path); //skojarzenie zmiennej plikowej f z fizycznym zbiorem


(…)


srednia:=Average_row_or_column(false,wk,A);
writeln('Srednia : ',srednia:2:3); end;
end;
end;
readln;
end.
ZADANIE 14.
Może to pomoże Wam zrozumieć idee funkcji i procedur, zmiennych lokalnych i globalnych
Przykład pochodzi z “Borland Pascal 7.0 z elementami programowania” Andrzej Marciniak
Funkcja y=f(x) określona jest wzorem:
Funkcja języka Borland Pascal (Delhi też), obliczająca wartość powyższej funkcji dla danego x, może mieć postać:
Function fun1 ( x : Real ) : Real;
Begin
If x<0.5 then fun1:=(0.2*x-1)*x +0.1
Else fun1:=x*x/(x*x - 0.1);
End;
W nagłówku funkcji zadeklarowano parametr x typu real przekazywany przez wartość. Wartość funkcji jest typu real. Zauważmy, że w treści funkcji fun1 nie występuje żadna zmienna lokalna.
Wartość podanej funkcji może też być obliczona za pomocą funkcji:
Function fun2 ( x :Real ) : Real;
Var x2 : real;
X2:=x*x;
If x<0.5 then fun2:=0.2*x2 - x +0.1
Else fun2:=x2/(x2 - 0.1);
End;
której treść zawiera zmienną lokalną x2.
Jeśli zastosujemy funkcję postaci: Function fun3 : Real;
Begin
X2:=x*x;
If x<0.5 then fun3:=0.2*x2 - x + 0.1
Else fun3:=x2/(x2 - 0.1)
End;
to obie zmienne (x i x2) są w treści tej funkcji zmiennymi nielokalnymi. Zmienne te muszą być zatem zadeklarowane w bloku obejmującym daną funkcję (w części opisowej programu), a ponadto przed wywołaniem tej funkcji należy nadać wartość zmiennej x. Wyznaczenie pierwiastków rzeczywistych równania kwadratowego:
można zrealizować za pomocą następującej procedury:
procedure rk ( const a,b,c : Real; var x1, x2 : Real );
var delta : real;
begin
delta:=b*b - 4*a*c
if delta = 0 then begin
x1:=-b/(2*a);
x2:=x1;
end…
….
ZADANIE 2.
Poniższy program korzysta z pliku tekstowego rekord.txt o formacie:
1 linia w pliku „NAGŁÓWEK”
2 linia w pliku nazwisko imie rok srednia
3 linia w pliku nazwisko imie rok srednia
Itd…..
Każdy wiersz w pliku to rekord o identyfikatorze „student” o polach jak wyżej. Program odczytuje z pliku wszystkie rekordy oraz pod zmienną liczba_rekordow podstawia ilość wierszy (rekordów) w pliku. Następnie program prosi o podanie nazwiska studenta (pozbywa się niepotrzebnych spacji (funkcja zamien)) i wyszukuje i zlicza wszystkich studentów o podanym nazwisku zapisując te rekordy do pliku nazwiska. Analogicznie postępuje z polem rekordu „rok”.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
type student = record
nazwisko:string[9];
imie:string[10];
rok:word;
srednia:real;
end;
var dane:array[1..100] of…
... zobacz całą notatkę

Komentarze użytkowników (0)

Zaloguj się, aby dodać komentarz