Suma 3 macierzy
program suma;
uses crt;
TYPE
macierz=array [1..20,1..20] of real;
var A,B,AB,C,D:macierz;
n,m:integer;
NZ1,NZ2,NZ3:string;
Begin
Clrscr;
Writeln(‘Podaj wymiary macierzy, wiersz,kol. ‘);
Readln(n,m);
Writeln(‘Nazwy macierzy: ‘);
Readln(NZ1,NZ2,NZ3);
CZYTAJ(N,MA,NZ1);
CZYTAJ(N,M,B,NZ2);
CZYTAJ(N,M,C,NZ3);
SUMA(N,M,A,B,AB);
SUMA(N,M,AB,C,D);
Writeln(‘MACIERZ’,NZ1);
DRUK(N,M,A);
Writeln;
Writeln(‘MACIERZ’,NZ2);
DRUK(N,M,B);
Writeln;
Writeln(‘MACIERZ’,NZ3);
DRUK(N,M,C);
Writeln;
Writeln(‘SUMA: ‘,NZ1+NZ2+NZ3);
DRUK(N,M,D);
END.
Program który utworzy plik zawierający wykaz wspołrzednych wielu punktów.
program plik;
uses crt;
var n,k,m:integer;
x,y: real;
nazwa_pliku:string;
plik:text;
Begin
clrscr;
Writeln(‘Podaj nazwe pliku’);
Readln(n);
ASSIGN(plik,nazwa_pliku);
REWRITE(plik);
FOR K:=1 to N DO
Begin
Writeln(‘NR,x,y’,k:2,’punktu);
Readln(m,x,y);
Writeln(plik, m:0,x:0:2,y:10:2);
End;
CLOSE(plik);
END.
Program, ktory wczyta z pliku wykaz wspolrzednych punktow, wyswietli go, pobierze wspolrzedne dwoch punktow okreslone numerami I wyznaczy odcinek miedzy punktami. Znana jest liczba pkt na pliku.
Program odcinek;
var nazwa:string;
wykaz:text;
d,x1,y1,x2,y2:Real;
n,K,NR1,NR2:integer;
x,y:array[1..100] of real;
NR:array[1..100] of integer;
Begin
Clrscr;
Writeln(‘Nazwa pliku z danymi’);
Readln(nazwa);
ASSIGN(wykaz,nazwa);
RESET(wykaz);
I.Writeln(‘Liczba punktów w wykazie’);
Readln(n);
FOR:=1 TO N DO
Readln(NR[k], x[k],y[k]);
II. n:=0
WHILE NOT EOF (wykaz) DO
n:= n+1
Readln(wykaz, NR[n], x[n], y[n]);
End;
Writeln(‘Pobrano wspołrzędne’,n:0,’punktów’);
Readln;
Writeln(‘m’:10,’x’,:10,’y’:10);
FOR k:=1 TO N DO
Writeln(NR[k]:10, x[k]:10;2,y[k]:10:2);
Writeln(‘Podaj numer dwóch punktow’);
Readln(NR1,NR2);
FOR:=1 TO N DO
Begin
IF NR1=NR[k] THEN
Begin
x 1:=x[k];
y1=y[k];
end;
IF NR2=NR[k] then
Begin
x 2:= x[k];
y2:=y[k];
end;
end;
d:=sqrt(sqr(x2-x1) + sqr(y2-y1));
Writeln(‘dlugość= ‘d:0:2);
Readln;
END.
Czytanie pliku tekstowego zawierającego tekst(wierszami)
Program plik;
uses crt;
var wiersz:string;
Begin
Clrscr;
Writeln(‘Nazwa pliku z tekstami);
Readln(nazwa);
ASSIGN(F,nazwa);
RESET(F);
WHILE NOT EOF(F) DO
Begin
Readln(F,wiersz);
Writeln(wiersz);
End;
CLOSE(F);
Readln;
END.
Czytanie tekstu z pliku po pierwszym znaku
program plik;
uses crt;
var ZN:char;
F: File of char;
nazwa:string;
Begin
clrscr;
Writeln(‘Nazwa pliku z tekstem’);
Readln(nazwa);
ASSIGN(F,nazwa);
RESET(F);
WHILE NOT EOF(F) DO
Begin
Readln(F,ZN);
Writeln(ZN);
End;
CLOSE(F);
REadln;
END.
Program który pobierze z pliku o podanej nazwie liczby i utworzy 2 nowe pliki, 1 zawierający liczby parzyste a 2 liczby nieparzyste.
program plik;
uses crt;
var a,b,c : File of integer;
NZD,NZP,NZN:string;
L:integer;
Begin
clrscr;
Writeln(‘Nazwa pliku z danymi’);
Readln(NZD);
Writeln(‘Nazwa pliku liczb parzystych’);
Readln(NZP);
Writeln(‘Nazwa pliku liczb nieparzystych’);
Readln(NZN);
ASSIGN(a,NZD);
ASSIGN(b,NZP);
ASSIGN(c,NZN);
RESET(a);
REWRITE(b);
REWRITE(c);
n:= 0;
WHILE NOT EOF (a) DO
Begin
Readln(a,L);
IF L MOD 2=0 THEN
Writyeln(b,L:10);
Writeln(c,L:10);
N:=N+1;
End;
CLOSE(a);
CLOSE(b);
CLOSE©;
Writeln(‘przeczytano’,n:5,’liczb’);
Readln;
END.
Program który utworzy bazę współrzędnych punktu (z klawiatury bądź z pliku), wykona edycje i w razie potrzeby poprawi współrzędne. w programie wykorzystać następujące procedury: czytaj_XY, czytaj_plik, edycja_xy, poprawa_xy
Program, który policzy wspolrzedne srodka działki z wykorzystaniem procedury CZYTAJ_X,Y, funkcji niestandardowej o nazwie SUMA. WYKAZ WSPOLRZEDNYCH zapisany jest na pliku. Wyniki dopisać do pliku z danymi.
program dzialka;
uses crt;
TYPE wektor=array[1..20] of integer;
wektor=array[1..20] of real;
var dane XY:text;
var nazwa:string;
var sx, sy, xs, ys:real;
var nr:wektor1;
var x, y:wektor2;
procedure czytaj_xy.plik(N:integer; NZ:string; var nr:wektor1; var x,y:wektor2);
var k:integer;
var plik:text;
begin
assign(plik, n2);
reset(plik);
for K:=1 to N do
readln(plik, nr[k], x[k], y[k]);
end;
close(plik);
end;
function suma(n:integer; var l:wektor2):real;
var k:integer;
var s:real;
begin
for k:=1 to N do
s:=s+l[k];
suma:=s;
end;
begin
clrscr;
writeln(‘nazwa pliku z danymi’);
readln(nazwa);
assign(dane XY, nazwa);
writeln(‘liczba punktów granicznych’);
readln(n);
czytaj_XY_plik(n, nazwa, nr, x, y);
sx:=suma(n,x);
sy:=suma(n,y);
xs:=sx/n;
ys:=sy/n;
append(dane xy);
writeln(dane xy, xs:10:2, ys:10:2);
writeln(‘xs=’,xs:10:2);
writeln(‘ys=’,ys:10:2);
readln
close(dane xy);
end.
Wczytuje 50 liczb, tworzy plik z liczbami parzystymi i ich sumą
program liczby;
uses crt;
var k, s:integer;
var l:array[1..50] of integer;
var nazwa_pliku:string;
var plik:text;
begin
clrscr;
writeln('podaj nazwe tworzonego pliku');
readln(nazwa_pliku);
assign(plik, nazwa_pliku);
rewrite(plik);
for k:=1 to 50 do
begin
writeln('liczba=');
readln(l[k]);
end;
for k:=1 to 50 do
begin
if l[k] mod 2=0 then
writeln(plik, l[k]:2);
end;
close(plik);
readln;
append(plik);
s:=0;
for k:=1 to 50 do
begin
s:=s+l[k];
end;
writeln (plik, s:2);
readln;
close(plik);
end.
Stworzylam program na sume parzystych i zapisanie jej w pliku tylko jest mały problem w pliku zapisuje się ostatnia wprowadzona liczba i suma liczb parzystych a nie wszystkie liczby parzyste
program yyh ;
uses crt;
var k:integer;
l,a:array[1..20] of byte;
sp:integer;
nazwa:string[20];
dane:text;
begin
clrscr;
writeln('nazwa tworzonego pliku');
readln(nazwa);
assign(dane,nazwa);
rewrite(dane);
sp:=0;
for k:=1 to 5 do
begin
writeln('liczba ', k:2,'=');
readln(l[k]);
a[k]:= l[k] ;
if ((l[k] div 2)*2=l[k])
then
sp:=sp+a[k];
end;
writeln('suma parzystych =', sp);
readln;
writeln(dane, a[k] , sp);
close(dane);
end.
A to jest ten mój z zerówki:
program pomiary;
uses crt;
var nazwa:string;
var plik:text;
var n, k:integer;
var d:real;
begin
clrscr;
writeln('podaj nazwe tworzonego pliku');
readln(nazwa);
assign(plik,nazwa);
rewrite(plik);
writeln('podaj ilosc pomiarow');
readln(n);
for k:=1 to n do
begin
writeln('podaj dlugosc mierzonego odcinka');
readln(d);
writeln (plik, d:0:2);
end;
readln;
close(plik);
end.
Ta funkcja i procedura na obliczenie objętości walca powinny wyglądać tak:
procedure walec(r,h:real; var v:real);
var pp:real;
begin
pp:=sqr(r)*pi;
v:=pp*h;
end;
function walec(r,h:real):real;
var pp:real;
begin
pp:=sqr(r)*pi;
walec:=pp*h;
end;
Program objetosc;
uses crt;
var v, h, r:real;
procedure walec(r,h:real; var v:real);
var pp:real;
begin
pp:=sqr(r)*pi;
v:=pp*h;
end;
begin
clrscr;
writeln('podaj promien podstawy');
readln(r);
writeln('podaj wysokosc walca');
readln(h);
walec(r,h);
writeln('objetosc=', v:0:4);
readln;
end.
Program na silnie(funkcja i procedura)(2 wersje) wyznaczyć f=n!/m!
Program funkcja;
Uses crt;
Var n,m:integer;
Var sn,sm,f:real;
Procedure silnia (l:integer; var s:real);
Var k:integer;
Begin
If l<0 then
Begin
Writeln(‘silnia nie istnieje’);
Readln;
Exit;
End;
If (l=0) or (l=1) then s:=1;
S:=s*k;
End;
Begin
Clrscr;
Writeln(‘podaj n,m’);
Readln(n,m);
Silnia(n,sn);
Silnia(m,sm);
F:=sn/sm;
Writeln(‘f=’,f:0:5);
Readln
End.
Teraz z funkcja to samo.
Function silnia (l:integer):real;
Var k:integer;
A:real;
Begin
If l<0 then
Begin
Writeln(‘silnia nie istnieje’);
Readln;
Halt;
End;
If (l=0) or (l=1) then silnia:=1
A:=1;
For k:=2 to l do
A:=a*k;
Silnia:=a;
End.
Suma 3 macierzy
Procedure czytaj (n,m:integer; var t:macierz);
Var nz:string;
Var n,k:integer;
Begin
For w:=1 to n do
For k:=1 to m do
Begin
Write(nz,’[‘,w:2,’,’,k:2,’]=’);
Readln(t[w,k]);
End;
Procedure druk (n,m:integer; var t:macierz);
Var w,k:integer;
Begin
For w:=1 to n do
Begin
For k:=1 to m do
Write (t[w,k]:8:1);
Writeln;
End;
Readln
End;
Procedure suma (n,m:integer; var t1,t2,t3:macierz);
Var w,k:integer;
Begin
For w:=1 to n do
For k:=1 to m do
T3[w,k]:=t1[w,k]+t2[w,k];
End;
Program suma;
Uses crt;
Type
Macierz=array[1..20,1..20] of real;
Var a,b,ab,c,d:macierz;
N,m:integer;
Nz1,nz2,nz3:string;
{wstawic procedury czytaj,druk, suma} chuj ze nie umiem no ale wstawcie :D
Begin
Clrscr;
Writeln(‘podaj wymiary macierz, wiersz, kolumna’);
Readln(n,m);
Writeln(‘nazwy macierzy’);
Readln(nz1,nz2,nz3);
Czytaj(n,m,a,nz1);
Czytaj(n,m,b,nz2);
Czytaj(n,m,c,nz3);
Suma(n,m,a,b,ab);
Suma(n,m,ab,c,d);
Writeln(‘macierz’,nz1);
Druk(n,m,a);
Writeln(‘macierz’,nz2);
Druk(n,m,b);
Writeln;
Writeln(‘macierz’,nz3);
Druk(n,m,c);
Writeln;
Writeln(‘suma:’nz1+nz2+nz3);
Druk(n,m,d);
End.