Program w Pascalu - procedury

kleeex
Użytkownik
Użytkownik
Posty: 9
Rejestracja: 10 lis 2006, o 01:01
Płeć: Mężczyzna
Lokalizacja: Śląsk(Bielsko-Biala)
Podziękował: 3 razy

Program w Pascalu - procedury

Post autor: kleeex »

Witam wszystkich;

Mam do napisania 5 zadan w pascalu oto one :

1. Napisac procedure wyznaczajaca elementy ciagu arytmetycznego (ma wyswietlac tyle
elementow ile chcesz).

2. Napisac procedure wyznaczajaca sume ciagu geometrycznego

3. Napisac procedure wyznaczajaca maksimum oraz jego pozycje, minimum oraz jego pozycje,
srednia arytmetyczna dla ciagu liczb zakonczonego 0. Uwaga, wartosc max oraz min ma byc wyznaczona
co do wartosci bezwzglednej

4. napisac procedure wyswietlajaca dzien tygodnia oraz miesiac, przyjac, ze dane te sa podane
jako liczby

5. napisac procedure sortowania trzech liczb od najwiekszej do najmniejszej

Czy jest ktos z obecnych tu na forum kto pomoglby mi w tych zadaniach

Dziekuje z gory i pozdrawiam.
Awatar użytkownika
Sokół
Użytkownik
Użytkownik
Posty: 451
Rejestracja: 17 wrz 2006, o 19:22
Płeć: Mężczyzna
Lokalizacja: Zielona Góra
Podziękował: 15 razy
Pomógł: 55 razy

Program w Pascalu - procedury

Post autor: Sokół »

kleeex pisze:4. napisac procedure wyswietlajaca dzien tygodnia oraz miesiac, przyjac, ze dane te sa podane
jako liczby
ale podawane sa jako data? Np. na podstawie 10.11.2006 trzeba stwierdzic, ze to piatek a miesiac listopad? Czy np. podawane sa w formie 5 11, czyli piaty dzien tygodnia (liczac od poniedzialku, czyli piatek) i miesiac listopad?

co do piatego:

Kod: Zaznacz cały

program sortownik;
uses crt;
var a,b,c : integer;
begin
clrscr;
write('podaj liczbe a: ');
readln(a);
write('podaj liczbe b: ');
readln(b);
write('podaj liczbe c: ');
readln(c);
if a<=b then
        begin
                if c<=a then writeln('c= ',c,' a= ',a,' b= ',b) else
                        begin
                                 if c>b then writeln('a= ',a,' b= ',b,' c= ',c) else writeln('a= ',a,' c= ',c,' b=' ,b);
                        end;
 end else       if c<=b then writeln('c= ',c,' b= ',b,' a= ',a) else
                        begin
                                if c>=a then writeln('b= ',b,' a= ',a,' c= ',c) else writeln('b= ',b,' c= ',c,' a=' ,a);

        end;

readln();
end.
Awatar użytkownika
ADAM1234
Użytkownik
Użytkownik
Posty: 46
Rejestracja: 19 wrz 2006, o 18:43
Płeć: Mężczyzna
Lokalizacja: BBa
Podziękował: 8 razy
Pomógł: 2 razy

Program w Pascalu - procedury

Post autor: ADAM1234 »

Zadanie pierwsze

Kod: Zaznacz cały

procedure arytm(a1: real; r:real; wyswietl_od,wyswietl_do: integer);
var tablica: array[1..100] of real;
     i: integer;

begin
       tablica[1] := a1;

       {//--wpisywanie ciagu do tablicy}
       for i := 2 to wyswietl_do do             
       begin
               tablica[i] := a1 + r;
               a1 := a1 + r;
       end;

       {//--wypisywanie}
       writeln('Wypisuje te poszczegolne elementy ciagu: ');
       for i := wyswietl_od to wyswietl_do do
                  writeln('element ',i:2,': ',tablica[i]:2:4);
end;
kleeex
Użytkownik
Użytkownik
Posty: 9
Rejestracja: 10 lis 2006, o 01:01
Płeć: Mężczyzna
Lokalizacja: Śląsk(Bielsko-Biala)
Podziękował: 3 razy

Program w Pascalu - procedury

Post autor: kleeex »

@adam1234

Dzieki za zadanie, nie moge wymyslic jak wpisac w 2 zadaniu wzor na sume ciagu geometrycznego, moze wiesz ?

@Sokol

trzeba podac je w formie 5 11 , czyli piaty dzien tygodnia i miesiac listopad, ale jezeli bylbys w stanie pokazac mi tez ta pierwsza forme co napisales bylbym wdzieczny.

Pozdrawiam.
Awatar użytkownika
ADAM1234
Użytkownik
Użytkownik
Posty: 46
Rejestracja: 19 wrz 2006, o 18:43
Płeć: Mężczyzna
Lokalizacja: BBa
Podziękował: 8 razy
Pomógł: 2 razy

Program w Pascalu - procedury

Post autor: ADAM1234 »

robisz najpierw funkcję:

Kod: Zaznacz cały

function pot(podstawa:real;wykladnik:integer):real;
 var i:integer;
       pom:real;
begin
pom:=1;
for i:=1 to wykladnik do
pom:=pom*podstawa;
pot := pom;
end;

Kod: Zaznacz cały

S := a1*(1-pot(q,k))/(1-q);
założenie: k należy to całkowitych dodatnich
kleeex
Użytkownik
Użytkownik
Posty: 9
Rejestracja: 10 lis 2006, o 01:01
Płeć: Mężczyzna
Lokalizacja: Śląsk(Bielsko-Biala)
Podziękował: 3 razy

Program w Pascalu - procedury

Post autor: kleeex »

@ADAM1234

Zrobilem sume ciagu arytmetycznego :
program procedura;


begin

procedure Suma_aryt(a1,r:double;n:integer; var suma:double);
var
i:integer;
begin
suma:=0;
for i:= 1 to n do
suma:=suma+a1+(i-1)*r;
end;
var
w1,roznica:double;
ilosc:integer;
suma1:double;
begin
writeln('podaj pierwszy wyraz');
readln(w1);
writeln('podaj roznice wyrazow');
readln(roznica);
writeln('podaj ilosc wyrazow');
readln(ilosc);
writeln(suma1:6:2,roznica:6:2);
Suma_aryt(w1,roznica,ilosc,suma1);
writeln(suma1:6:2);

readln;
end.
mam zrobic sume ciagu geometrycznego, nie daje sobie z tym rady, ta funkcje od ciebie mam wstawic przed procedura ?

Ja juz jestem za stary na to wszystko :cry:
Awatar użytkownika
ADAM1234
Użytkownik
Użytkownik
Posty: 46
Rejestracja: 19 wrz 2006, o 18:43
Płeć: Mężczyzna
Lokalizacja: BBa
Podziękował: 8 razy
Pomógł: 2 razy

Program w Pascalu - procedury

Post autor: ADAM1234 »

Kod: Zaznacz cały

program liczy_sume_c_geometrycznego;
uses crt;
var podstawa,a1,q:real;
    wykladnik,k:integer;

function pot(podstawa:real;wykladnik:integer):real;
 var i:integer;
       pom:real;
begin
pom:=1;
for i:=1 to wykladnik do
pom:=pom*podstawa;
pot := pom;
end;

procedure suma(a1: real; q:real; k:integer); { k - ile wyrazow sumy }
var S:real;
begin
S := a1*(1-pot(q,k))/(1-q);
writeln('suma ciagu geometrycznego',k:2,'-wyrazow dla:');
writeln('a1: ',a1:2:4);
writeln(' q: ',q:2:4);
writeln('Wynosi: ',S:2:4);
end;

BEGIN
     clrscr;
     suma(2,2,3);
     repeat until KeyPressed;
END.
kleeex
Użytkownik
Użytkownik
Posty: 9
Rejestracja: 10 lis 2006, o 01:01
Płeć: Mężczyzna
Lokalizacja: Śląsk(Bielsko-Biala)
Podziękował: 3 razy

Program w Pascalu - procedury

Post autor: kleeex »

@adam1234

napisalem juz kiedys wczesniej program ciag, gdzie wprowadzam x liczb, koncze go 0 i wyliczam maximum, jak przerobic go na procedure w zadaniu 3 ?
program Ciag;

{$APPTYPE CONSOLE}

var
i,a,m,max:integer;

begin
i := 1;
max := 0;

repeat
writeln ('Podaj liczbe : ',i);
readln(a);
if a >= max then
begin
m := i;
max := a;
end;
i := i+1
until a=0;

writeln ('Maksymalna liczba to : ',max,' i jest na ',m,' miejscu.');


readln;
end.
i jeszcze jedno pytanie do zadania 1 ktore podales, jak wywolac procedure w tym zadaniu ?
i jeszcze bym cie prosil o pomoc z tym sortowaniem, samo sortowanie wiem jak to zrobic, ale wpisac to do procedury nie kumam, wogole to do tej poru wiedzialem o co chodzi, jak zaczely sie procedury mam ciemno przed oczami, ciekawe co bedzie dalej.

Bardzo ci dziekuje za pomoc dotychczasowa i pozdrawiam.
Awatar użytkownika
ADAM1234
Użytkownik
Użytkownik
Posty: 46
Rejestracja: 19 wrz 2006, o 18:43
Płeć: Mężczyzna
Lokalizacja: BBa
Podziękował: 8 razy
Pomógł: 2 razy

Program w Pascalu - procedury

Post autor: ADAM1234 »

przykładowe wywołania procedury z zadania pierwszego:

Kod: Zaznacz cały

arytm(1.5,2.5,1,18); {wyświetli wszystkie osiemnaście elementów}
arytm(1.5,2.5,4,17); {wyświetli (17-4) elementów od czwartego do ostatniego(17)}
cała reszta jutro(obiecuje) bo dziśjuż nie dam rady(szkoła)

===============================================================
[ Dodano: 13 Listopad 2006, 15:13 ]


[url=http://members.lycos.co.uk/serwermoj/SORT.PAS]ćwiczenie piąte[/url]

===============================================================
kleeex
Użytkownik
Użytkownik
Posty: 9
Rejestracja: 10 lis 2006, o 01:01
Płeć: Mężczyzna
Lokalizacja: Śląsk(Bielsko-Biala)
Podziękował: 3 razy

Program w Pascalu - procedury

Post autor: kleeex »

@adam1234

Serdecznie ci dziekuje za pomoc, jak tak patrze na te zadania teraz, to po glebokim przeanalizowaniu stwierdzam ze nie sa one takie trudne, no ale zawsze tak jest w takich sytuacjach, zastanawiam sie jak mam do tego wszystkiego podejsc, zeby sie tak nauczyc myslec w tym programowaniu zebym mogl sam na to wpasc ze dane zadanie ma byc tak napisane (szukam i szukam i nie moge znalezsc rozwiazania), a pewno w sobote dostane nastepne 5 zadan i co wtedy ? :???:

Pozdrawiam serdecznie .

Ps.Moge prosic o pomoc gdy bede mial znow problem z jakims zadaniem ?

Dzieki twojej pomocy sklecilem cos takiego :
program suma_ciagu_geometrycznego;

function potega(a:real;n:integer):real;
var i:integer;
x:real;
begin
x:=1;
for i:=1 to n do
x:=x*a;
potega := x;
end;

procedure suma(a1,q:real; k:integer; var suma:double); // k - ile wyrazow sumy
var
i:integer;

begin
for i := 1 to k do
suma :=a1*(1-potega(q,k))/(1-q);
end;

var
ilosc:integer;
w1,iloczyn:real;
suma1:double;

begin
writeln('podaj 1 wyraz : ');
readln(w1);
writeln('podaj ilosc wyrazow ');
readln(ilosc);
writeln('podaj iloczyn wyrazow ');
readln(iloczyn);

suma(w1,iloczyn,ilosc,suma1);
writeln('suma ciagu geometrycznego',ilosc:2,' wyrazow dla:');
writeln;
writeln(' w1: ',w1:4:2);
writeln(' iloczyn: ',iloczyn:4:2);
writeln;
writeln('Wynosi: ',suma1:4:2);
readln;
end.
I DZIALA !!!!!!!! :D :D :D
ODPOWIEDZ