Skocz do zawartości

Programy w pascalu: sortujący i obliczający pola figur


pawlak89

Rekomendowane odpowiedzi

Na zaliczenie pierwszej klasy technikum z przedmiotu programowanie musze napisac dwa programy. Muszą być napisane w pascalu. Jestem zielony jeśli chodzi o programowanie, więc prosze o wyrozumiałość. Prosze o pomoc i z góry dziękuje.

 

Programy:

1. Napisz program (pascal) odczytujący z pliku tekstowego cięg liczb, sortujący go, a następnie wyświetlający posortowany ciąg na ekranie.

2. Napisz program (pascal) obliczający pola koła, kwadratu, trójkąta. Program ma umożliwiać wybór figury geometrycznej którą chcemy obliczyć.

 

Tym co pomogą dziekuje.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie jestem pewien, ale 2 program powinien wyglądać mniej więcej tak:

program pola;
var 
a,b:real;
c:byte;

procedure kolo;
begin
writeln('Podaj dlugosc promienia:');
readln(a);
writeln('Pole wynosi w przyblizeniu: ', pi*a*a);
end;

procedure kwadrat;
begin
writeln('Podaj dlugosc boku:');
readln(a);
writeln('Pole wynosi: ',a*a);
end;

procedure trojkat;
begin
writeln('Podaj wysokosc trojkata: ');
readln(a);
writeln('Podaj dlugosc podstawy: ');
readln(b);
writeln('Pole wynosi: ', 0.5*a*b);
end;

begin
a:=0;
b:=0;
repeat
writeln('Pole jakiej figury chcesz policzyc?');
writeln('1. Kolo');
writeln('2. Kwadrat');
writeln('3. Trojkat');
writeln('Aby dokonac wyboru nacisnij cyfre od 1-3 i nacisnij enter');
readln(c);
until c > 0 and c < 4;
if c = 1 then kolo else 
begin
if c = 2 then kwadrat else
if c = 3 then trojkat;
end;
readln;
end.

Masz tutaj od razu zabezpieczenie przed wprowadzeniem w menu wartości wyższych lub niższych niż te które umożliwiają wybór podprogramu liczącego pole.

Odnośnik do komentarza
Udostępnij na innych stronach

Zastanawia mnie jedna rzecz... masz przedmiot programowanie to czego Cię tam uczą ? Musisz wykonać pracę w pascalu o którym nic nie wiesz, to oni zadają rzeczy do zrobienia o których nawet nie uczą ?

zmieniłem szkołe i musze zaliczyć różnice programowe

Odnośnik do komentarza
Udostępnij na innych stronach

zmieniłem szkołe i musze zaliczyć różnice programowe

 

Moja nie rozumieć. Zmieniłeś szkołę i od razu każą ci coś w pascalu napisać? Dziwne...

 

Drugi program Marmot ci napisał, co do pierwszego to sam bym nawet pomógł gdybym wiedział jakie to mają być ciągi cyfer i jak posortowane. :P

Odnośnik do komentarza
Udostępnij na innych stronach

Moja nie rozumieć. Zmieniłeś szkołę i od razu każą ci coś w pascalu napisać? Dziwne...

 

Drugi program Marmot ci napisał, co do pierwszego to sam bym nawet pomógł gdybym wiedział jakie to mają być ciągi cyfer i jak posortowane. :P

 

to ma byc coś takiego że mam w pliku napisane jakieś losowe liczby i program ma je sortować żeby były w kolejności od najmniejszej do największej

Odnośnik do komentarza
Udostępnij na innych stronach

A ja Wam powiem, że to jest jakaś jedna wielka podpucha. Przecież tak banalnych rzeczy to już w przedszkolu uczą xP te zadanie z obliczniem pól figur to jest w każdym tutorialu na pierwszym miejscu jako najłatwiejsze do zrobieia... Ja nie mogę, jak te szkoły tera schodzą na psy... :/

Odnośnik do komentarza
Udostępnij na innych stronach

znalazłem takie coś, ale to lipnie dziła, bo owszem cyfry wyświetla po kolei ale nie wszystkie takie jak w pliku tekstowym. co tu jest nie tak?

 

 

var

plik : text;

 

begin

assign(plik, naz_pl);

{$I-}reset(plik);{$I+}

if ioresult = 0 then

 

begin

plik_istieje := true;

close(plik);

end

else plik_istieje := false;

end;

 

var

pl_tekst : text;

wiersz : string;

liczba : integer;

kod : integer;

 

begin

assign(pl_tekst, nazwa_pliku);

reset(pl_tekst);

akum := 0;

repeat

readln(pl_tekst, wiersz);

if wiersz <>' ' then

 

begin

val(wiersz, liczba, Kod);

inc(akum);

if kod <> 0 then

 

begin

dec(akum);

kod := 0;

end

else tablica^[akum] := liczba;

end;

until (eof(pl_tekst)) and (akum <= 250);

close(pl_tekst);

end;

 

var

i : integer;

j : integer;

k : integer;

tmp : integer;

 

begin

for i := 1 to n-1 do

 

begin

k := i;

for j := i+1 to n do

if a^[k] > a^[j] then k := j;

tmp := a^;

a^ := a^[k];

a^[k] := tmp;

end;

end;

 

var

pl_tekst : text;

i : integer;

liczba : integer;

wiersz : string;

 

begin

assign(pl_tekst, nazwa_pliku);

rewrite(pl_tekst);

for i := 1 to akum do

 

begin

liczba := tablica^;

str(liczba, wiersz);

writeln(pl_tekst, wiersz);

end;

close(pl_tekst);

dispose(tablica);

end;

 

begin

new(tablica);

repeat

writeln('Podaj nazwe pliku wejsciowego: ');

readln(nazwa);

until plik_istieje(nazwa);

wczytaj_plik(nazwa);

for i:=1 to akum-1 do

writeln(tablica^);

writeln;

writeln('Posortowano tablice.');

sortuj(tablica,akum);

for i:=1 to akum-1 do

writeln(tablica^);

repeat

writeln;

writeln('Podaj nazwe pliku wyjsciowego');

readln(nazwa);

until not plik_istieje(nazwa);

zapisz_plik(nazwa);

writeln;

writeln('Zapisalem wynik dzialania w pliku.');

writeln('Wcisnij dowolny klawisz aby zakonczyc prgramu ...');

readkey;

end.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...