Forum www.wstigz.fora.pl Strona Główna
  FAQ  Szukaj  Użytkownicy  Grupy  Galerie   Rejestracja   Profil  Zaloguj się, by sprawdzić wiadomości  Zaloguj 

Programowanie Pascal

Napisz nowy tematOdpowiedz do tematu Forum www.wstigz.fora.pl Strona Główna -> Pomoc...
Zobacz poprzedni temat :: Zobacz następny temat
Autor Wiadomość
Kejbi




Dołączył: 18 Lis 2007
Posty: 12
Przeczytał: 0 tematów

Skąd: Brzęczki rlz

PostWysłany: 02.12.2007 (Nie) 9:37 Temat postu: Programowanie Pascal

Kod:
program temperatura;
var
temp:array [1..7] of real=(20, 21, 17, 18, 19, 22, 27);
i:integer;
x,s:real;
begin
i:=1;
x:=0;
s:=0;
while i<8 do
   begin
      x:=temp[i];
      s:=s+x;
      i:=i+1;
   end;
s:=s/7;
writeln(s:0:2);
end.


Program temperatura + patch

Kod:
program temperatura;
var
temp:array [1..7] of real=(20, 21, 17, 18, 19, 22, 27);
i:integer;
x,s,m:real;
begin
i:=1;
x:=0;
s:=0;
m:=0;
while i<8 do
   begin
      x:=temp[i];
      s:=s+x;
      if x>=21 then writeln ('W dniu ',i,' byl upal - ',x:0:0,'^C');
      if x>m then m:=x;
      i:=i+1;
   end;
s:=s/7;
writeln('Srednia temperatura z calego tygodnia wnosi ',s:0:2,'^C');
writeln('Najwyzsza temperatura wynosi ',m:0:2,'^C');
end.
Powrót do góry
Zobacz profil autora
some_one
Administrator



Dołączył: 17 Lis 2007
Posty: 11
Przeczytał: 0 tematów


PostWysłany: 15.12.2007 (Sob) 10:11 Temat postu:

program który pisaniśmy na programowaniu

Kod:
program prosta_baza;
const MAX=10;
var moja_baza: array[1..MAX] of string;
   plyta:string;
   ile,i:integer;
   jest:boolean;
  begin
 // wprowadzanie plyt do bazy;
 writeln('ile plyt wprowadzic');
 readln(ile);
 for i:=1 to ile do
   readln(moja_baza[i]);
 //wyswietl baze
 writeln('w bazie znajduje sie' ,ile ,'elementow');
 writeln('oto one:');
 for i:=1 to ile do
  writeln(moja_baza[i]);
 // wczytaj ile plyt z klawiatury;
 //sprawdz czy dana plyta podana z klawiatury jest w bazie?
 writeln('podaj plyte');
 readln(plyta);
 jest:=false;
 for i:=1 to ile do
   if moja_baza[i]=plyta then
     //writeln('plyta znajduje sie w bazie')
     jest:=true;
    //else
    //writeln('plyta nie ma w bazie');
 if jest=true then
  writeln('plyta znajduje sie w bazie')
   else
  writeln('plyta nie ma w bazie');

   readln;
end.
[/code]
Powrót do góry
Zobacz profil autora
Wasiu




Dołączył: 13 Gru 2007
Posty: 16
Przeczytał: 0 tematów


PostWysłany: 05.01.2008 (Sob) 22:50 Temat postu:

oto zadania z kolosa ktory byl dzisiaj Smile

Cytat:
zad. 3 z gr 2

program zarobki;
const n=5;
var zarobki: array [1..n] of real= (2005,1345,2345,1245,4333);
podatki: array [1..n] of real= (30,10,15,15,30);

i:integer;
znetto:real;
begin
znetto:=zarobki[1]-
zarobki[i]*podatki[i]/100
for i:=2 to n do
begin
zarobek_kolejny:=zarobki[i]-
zarobki[i]*podatki[i]/100
if zarobek_kolejny>znetto then
begin
znetto:=zarobek_kolejny;
nr_pracownika:=1;
end;
end;
writeln('najwiecej zarabia', nr_pracownika);
writeln('jego zarobek wynosi',znetto);
end.



Cytat:
zad.1 z grupy 2

program litery
var s,w,i,j,z:integer;
begin
z:=97;
s:=6;
w:=5;
for j:=1 to w do
begin
for i:=1 to s do
begin
write(char(z));
//z:=z+1
end;
writeln;
z:=z+1
end.


--------------------------------inna wersja------------------------------------------
program litery
var s,w,i,j,z:integer;
begin
z:='a';
s:=6;
w:=5;
for j:=1 to w do
begin
for i:=1 to s do
begin
write(z);
//z:=z+1
end;
writeln;
z:=z+1
end.


Cytat:
zad.2 gr 2
program suma
var s,j,n:integer;
begin
n:=6;
s:=0;
for j:=1 to n do
begin
s:=s+j;
end;
end.



-------------------------------------------
program suma
var s,j,n:integer;
begin
n:=6;
s:=0;
i:=1;
k:=0;
repeat
if k mod 2 =0 then
s:=s+1;
else
s:=s-1;
i:=i+2;
k:=k+1;
until k=n;
end.



Cytat:
zad.1 gr 1 (chyba Razz)
program trapez;
var s,w,i,j:integer;
begin
readln(s);//szerokosc
readln(w);//wysokosc
for i:=1 to w do
begin
for j:=1 to s do
write('a');
writeln;
end;
end.


wybaczcie ale nie mam wszystkich zadan Smile
Powrót do góry
Zobacz profil autora
MarekK




Dołączył: 26 Lis 2007
Posty: 13
Przeczytał: 0 tematów


PostWysłany: 21.01.2008 (Pon) 18:30 Temat postu:

mam pytanko, a wiec:)
jak mam zapisana najwieksza wartosc(np.,temperature) w zmiennej MAX, i ta zmienna wynosi przykladowo 28stopni.

A chce zeby program napisal mi nie ze max temp wynosila 28stopni, ale ze te 28stopni bylo np. 5 dnia czyli jak np. temp[5]:=28 to zeby pokazalo te 5Smile
Nie wiem czy ktos zrozumie moje pytanie ale jesli tak to fajnie;)

takie cos bylo na kolosie w 3 zadaniu ktorejs grupy;)
Powrót do góry
Zobacz profil autora
xaviu




Dołączył: 01 Gru 2007
Posty: 3
Przeczytał: 0 tematów

Skąd: Sosnowiec

PostWysłany: 22.01.2008 (Wto) 22:43 Temat postu:

mysle ze w petli ktora sprawdza maksymalna wartosc wystarczy dac licznik. znaczy sie zmienna ktora bedzie wzrastac o jeden z kazdym przejsciem petli.
np:
i:=i+1;
jesli nasza zmienna MAX zmieni wartosc to zapisac nalezy zmienna "i" do innej zmiennej np "j". pozniej po sprawdzeniu wszystkich wartosci w tablicy gdy petla sie skonczy mozemy wypisac maxymalna temp jak i numer dnia w ktorym ona byla
np:
writeln('maksymalna temp wynosi:',MAX,'dnia:'j);
co nam da: maksymalna temp wynosi: 28 dnia: 5


Ostatnio zmieniony przez xaviu dnia 22.01.2008 (Wto) 22:44, w całości zmieniany 1 raz
Powrót do góry
Zobacz profil autora
mr.martin




Dołączył: 17 Sty 2008
Posty: 13
Przeczytał: 0 tematów


PostWysłany: 25.01.2008 (Pią) 18:25 Temat postu:

MarekK napisał:
mam pytanko, a wiec:)
jak mam zapisana najwieksza wartosc(np.,temperature) w zmiennej MAX, i ta zmienna wynosi przykladowo 28stopni.

A chce zeby program napisal mi nie ze max temp wynosila 28stopni, ale ze te 28stopni bylo np. 5 dnia czyli jak np. temp[5]:=28 to zeby pokazalo te 5Smile
Nie wiem czy ktos zrozumie moje pytanie ale jesli tak to fajnie;)

takie cos bylo na kolosie w 3 zadaniu ktorejs grupy;)


Kod:

program z;

var
tab:array [1..7] of real=(11,30,12,20,21,4,1);
max:real;
i,j,k:integer;

begin

max:=tab[1];
 for i:=1 to 7 do
  begin
  if  tab[i]>=max then
  begin
  max:=tab[i];
  k:=i;
  end;

end;

write('maxymalna temp wynosila ',round(max),' i byla ',k,' dnia tygodnia');
readln;
end.


Ostatnio zmieniony przez mr.martin dnia 25.01.2008 (Pią) 18:31, w całości zmieniany 2 razy
Powrót do góry
Zobacz profil autora
MarekK




Dołączył: 26 Lis 2007
Posty: 13
Przeczytał: 0 tematów


PostWysłany: 25.01.2008 (Pią) 19:43 Temat postu:

dzieki Wink
Powrót do góry
Zobacz profil autora
Wasiu




Dołączył: 13 Gru 2007
Posty: 16
Przeczytał: 0 tematów


PostWysłany: 27.02.2008 (Śro) 9:18 Temat postu:

Prosze o rozwiazanie tych zadan z pp (byly one na kolosie jak i pierwszej poprawce Smile )

1. Napisac program w j.Pascal ktory wyswietla na ekranie tekst o szerokosci S i wysokosci W (podanej z klawitury) w nastepujacej postaci

(przyklad 1. W=3 i S=6)

012345
123456
234567

2. Napisac program ktory liczy sume n kolejnych liczb zaczynajacych sie od 1 w nastepujacy sposb (dla n=6)

s=1-2+3-4+5-6

wskazowka:
wykorzystac operator MOD (reszta z dzielenia) do sprawdzenia parzystosci liczby np. 4 MOD 2 , 6 MOD 2 daje zero, 3 MOD 2 , 5 MOD 2 daje jeden.

3. Dany jest fragment programu:

program suma_tablis;
const N=5
var t1:array [0..N-1] of integer=(1,2,3,4,5,6)
t2:array [0..N-1] of integer=(1,2,3,4,5)
t3:array [0..N-1] of integer;
Uzupełnic program aby do tablicy t3 wpisał sumę tablis t1 i t2, dla przykladu w t3 po wykonaniu programu bedzie : (2,3,4,8,11)



pamietam jeszcze ze na poprawce byly takie programy

1. Napisac program w j.Pascal ktory wyswietla na ekranie tekst o szerokosci S i wysokosci W (podanej z klawitury) w nastepujacej postaci (przyklad W=5 i S=6)

aaaaaa
bbbbbb
cccccc
dddddd
eeeeee

wskazowka:
wykrzystac funkcje char(i) zwraca ona znak (typ char) na podstawie kodu i (typ integer) np. char(97) daje 'a' char(9Cool daje 'b' itd.


2. napisac program ktory obliczy najwyzsza temperature w calym tygodniu i ja wypisze (czy cos takiego)

program temp_naj
const N=7
var temp:array [0..N] of real=(13,24,30,30,16,20,10)

3. dane sa tablice
program zarobek_netto
const N=5
var zarobki:array [1..N] of real =(2000,1357.88,1600,1689,2200)
podatki:array [1..N] of integer =(30,10,15,15,30) // w procentach

w tablicach sa zarobki pracownikow i wartosci podatku ktory musza zaplacic miesiecznie. Napisz program ktory podaje nr. pracownika ktorego dochod netto jest najwiekszy.
ps. jeszcze raz prosze o rozwiazanie tych zadan i o wpisanie komentarzy co i jak (co do czego i takie tam) aby taka lamka jak ja mogla to przyswoic Smile z gory dziekuje Wink

4. Napisac program ktory liczy sume n kolejnych liczb zaczynajacych sie od 1 w nastepujacy sposb (dla n=6)

s=1-3+5-7+9-11

ps. prosze o nieusuwanie tej wiadomosci jak i odpowiedzi z rozwiazanymi zadaniami


Ostatnio zmieniony przez Wasiu dnia 27.02.2008 (Śro) 10:47, w całości zmieniany 2 razy
Powrót do góry
Zobacz profil autora
mr.martin




Dołączył: 17 Sty 2008
Posty: 13
Przeczytał: 0 tematów


PostWysłany: 27.02.2008 (Śro) 10:39 Temat postu:

Kod:
program zad1;

var
s,w,i,j,k:integer;


begin

write('Podaj wysokosc: ');
readln(w);
s:=w+3;

for i:=0 to w-1 do
    begin
    for j:=0 to s do
    write(j+i);
    writeln('');
    end;

readln;

end.



Kod:

{
3. Dany jest fragment programu:

program suma_tablic;
   const N=5;
   var t1:array [0..N-1] ] of integer =(1,2,2,4,6);
      t2:array [0..N-1] ] of integer =(1,2,3,4,5);
      t2:array [0..N-1] ] of integer ;

Uzupełnic program aby do tablicy t3 wpisał sumę tablic t1 i t2 , dla przykladu w t3 po wykonaniu programu bedzie : (2,4,5,8,11)
}
program zad3_t3;

   const N=5;
   var t1:array [0..N-1] of integer =(1,2,2,4,6);
      t2:array [0..N-1] of integer =(1,2,3,4,5);
      t3:array [0..N-1] of integer ;

  i,j,k,l,s:integer;

  begin
       for i:=0 to N-1 do
       begin
       t3[i]:=t1[i]+t2[i];
       write(t3[i]);
       end;
    readln;

end.



Kod:


{Napisac program w j.Pascal ktory wyswietla na ekranie tekst o szerokosci S i wysokosci W (podanej z klawitury) w nastepujacej postaci (przyklad W=5 i S=6)

aaaaaa
bbbbbb
cccccc
dddddd
eeeeee }

program zad1b;

var
s,w,i,j,k:integer;


begin

write('Podaj wysokosc: ');
readln(w);
s:=w+1;
i:=97;

for k:=0 to w-1 do
    begin
    for j:=0 to s do
    write(char(i+k));
    writeln('');
    end;

readln;
end.


Kod:

 { 3. dane sa tablice
program zarobek_netto
const N=5
var zarobki:array [1..N] of real =(2000,1357.88,1600,1689,2200)
podatki:array [1..N] of integer =(30,10,15,15,30) // w procentach }


program zar;
const n=5;
var zarobki: array [1..n] of real= (2000,1357.88,1600,1689,2200);
podatki: array [1..n] of real= (30,10,15,15,30);

i,nrpr:integer;
max:real;
 begin
max:=zarobki[1]-zarobki[1]*podatki[1]/100;
for i:=1 to n do
    begin
     if zarobki[i]-zarobki[i]*podatki[i]/100>max then
     begin
      max:=zarobki[i];
      nrpr:=i;
     end;

end;
 write(nrpr);
readln;
end.


c.d. i komentarze jak będę miał więcej czasu, może biały sie dołączy do rozwiązania albo ktoś to nie będę musiał Wink


Ostatnio zmieniony przez mr.martin dnia 27.02.2008 (Śro) 13:27, w całości zmieniany 6 razy
Powrót do góry
Zobacz profil autora
Wasiu




Dołączył: 13 Gru 2007
Posty: 16
Przeczytał: 0 tematów


PostWysłany: 27.02.2008 (Śro) 10:48 Temat postu:

zrobilem mala aktualizacje poniewaz znalazlem zdjecie na komorce z zadaniami z pp ktore tez byly Wink
Powrót do góry
Zobacz profil autora
Wasiu




Dołączył: 13 Gru 2007
Posty: 16
Przeczytał: 0 tematów


PostWysłany: 27.02.2008 (Śro) 22:10 Temat postu:

Jeszcze 3 zadania ost. tez wazne Smile

1c. Napisac program w j.Pascal ktory wyswietla na ekranie tekst o szerokosci S i wysokosci W (podanej z klawitury) w nastepujacej postaci

(przyklad S=6)

aaaaaa
ccccc
eeee
ggg
ii
k

wykrzystac funkcje char(i) dla i=97 funkcja zwraca znak a, i=98 b itd

2c. Napisac program ktory liczy sume n kolejnych liczb zaczynajacych sie od 1 w nastepujacy sposb (dla n=6)
>
> s=1+4-9+16-25+36
>
> wskazowka:
> wykorzystac operator MOD (reszta z dzielenia) do sprawdzenia parzystosci liczby np. 4 MOD 2 , 6 MOD 2 daje zero, 3 MOD 2 , 5 MOD 2 daje jeden.

3c. Dana jest tablica
const N=7
var wiatry:array [1..N] of integer =(4,7,8,6,0,1,2);
Napisac program ktory wypisuje dni w ktorych wiatr wial z sila od 4 do 6.
Powrót do góry
Zobacz profil autora
some_one
Administrator



Dołączył: 17 Lis 2007
Posty: 11
Przeczytał: 0 tematów


PostWysłany: 15.11.2008 (Sob) 14:57 Temat postu:

typ LONGINT
Jest to znany ci ju&iquest; typ liczbowy. Nie przejmowali&para;my si&ecirc; zbytnio jego zakresem, gdy&iquest; mie&para;ci liczby od -2147483648 do 2147483647, wi&ecirc;c jak wida&aelig; powinien ka&iquest;demu wystarczy&aelig;. Jest typem liczb ca&sup3;kowitych i tylko je zapami&ecirc;tuje.

typ INTEGER
Te&iquest; jest typem liczb ca&sup3;kowitych, ale o znacznie mniejszym zakresie (-32768..32767). Je&iquest;eli nie potrzebujesz tylu liczb co w typie LONGINT, u&iquest;ywaj INTEGER w celu zwi&ecirc;kszenia szybko&para;ci programu i zaoszcz&ecirc;dzenia pami&ecirc;ci.

typ SHORTINT
Czyli krótki typ ca&sup3;kowity. Mie&para;ci liczby z przedzia&sup3;u -128, 127.

typ BYTE
Liczba naturalna od 0 do 255. Typ ma&sup3;o stosowany, gdy&iquest; nie daje mo&iquest;liwo&para;ci zapami&ecirc;tywania liczb ujemnych.

typ WORD
Typ podobny do BYTE, z tym &iquest;e zapami&ecirc;tuje liczby z przedzia&sup3;u 0..65535.

typ REAL
Typ liczb rzeczywistych. Liczby rzeczywiste to zarówno ujemne jak i u&sup3;amki. Typ ten wydaje si&ecirc; by&aelig; dobrym typem, poza tym mie&para;ci on liczby o wiele wi&ecirc;ksze od typu LONGINT, mimo to zwi&plusmn;zane s&plusmn; z nim pewne problemy. W dalszej cz&ecirc;&para;ci tej lekcji znajduje si&ecirc; akapit dog&sup3;&ecirc;bnie omawiaj&plusmn;cy ten typ, wi&ecirc;c radz&ecirc; zajrze&aelig;.

typ STRING
Typ zapami&ecirc;tuj&plusmn;cy nie liczb&ecirc;, a tekst. Nie znaczy to oczywi&para;cie, &iquest;e typ ten nie zapami&ecirc;ta liczb - zapami&ecirc;ta, ale nie jako liczby, a jako ci&plusmn;g znaków. Typ ten ma jednak swoje ograniczenia - ci&plusmn;g znaków nie mo&iquest;e by&aelig; d&sup3;u&iquest;szy ni&iquest; 255 znaków.

typ CHAR
Typ ten dzia&sup3;a podobnie jak STRING, z tym, &iquest;e zapami&ecirc;tuje tylko 1 znak. Mo&iquest;na go interpretowa&aelig; w dwoisty sposób - znak jako znak, albo jako numer w tablicy ASCII. W sumie - wychodzi na jedno i to samo.

Z powy&iquest;szych typów zmiennych, gdy chcemy robi&aelig; jakie&para; skomplikowane obliczenia stosujemy typ REAL. Jak ju&iquest; wspomnia&sup3;em wi&plusmn;&iquest;e si&ecirc; z tym pewien k&sup3;opot (a tak w&sup3;a&para;ciwie to kilka k&sup3;opotów). Po pierwsze, gdy chcemy wprowadzi&aelig; liczb&ecirc; typu REAL do komputera, robi si&ecirc; to normalnie. Gorzej ju&iquest; ma si&ecirc; sytuacja, gdy chcemy tak&plusmn; liczb&ecirc; wy&para;wietli&aelig;. Zróbmy program, który najpierw pyta u&iquest;ytkownika o jak&plusmn;&para; liczb&ecirc;, a potem j&plusmn; wy&para;wietla. Spróbujcie najpierw zrobi&aelig; ten program wykorzystuj&plusmn;c zmienn&plusmn; LONGINT lub jak&plusmn;&para; inn&plusmn; ca&sup3;kowit&plusmn;, a potem spróbujcie z REAL. Wynik np. liczby 3 b&ecirc;dzie wygl&plusmn;da&sup3; miej wi&ecirc;cej tak: "3.0000000E+00". Jest to tzw. posta&aelig; naukowa, dla nas raczej niewygodna. Dlatego w&sup3;a&para;nie u&iquest;ywa&aelig; nale&iquest;y tu dwukropka. Je&iquest;eli chcemy, aby liczba wy&para;wietlona by&sup3;a "normalnie" podajemy nazw&ecirc; zmiennej, a nast&ecirc;pnie dwukropek i jak&plusmn;&para; liczb&ecirc;. Ta liczba b&ecirc;dzie decydowa&aelig;, ile miejsc po przecinku ma pokaza&aelig; komputer. Je&iquest;eli program ma podzieli&aelig; 1 na 2, wynik bez naszych dekoracji b&ecirc;dzie paskudny, wi&ecirc;c mo&iquest;na napisa&aelig;: "writeln(1/2:2)". Znaczy to, &iquest;e program ma napisa&aelig; ile jest 1 podzieli&aelig; na 2 korzystaj&plusmn;c z dwóch miejsc po przecinku. Wynik b&ecirc;dzie miej wi&ecirc;cej taki "0.50", a nie taki: "0.500000E+00". Chyba &sup3;adniej wygl&plusmn;da. Mo&iquest;emy równie&iquest; zastosowa&aelig; jeden dwukropek, liczb&ecirc;, drugi dwukropek i drug&plusmn; liczb&ecirc;. Wtedy pierwsza liczba decydowa&aelig; b&ecirc;dzie ile znaków ma by&aelig; przed przecinkiem, a druga - ile po. Nast&ecirc;pna sprawa to sposób wprowadzania liczb REAL. Dodatnie liczby wprowadza si&ecirc; normalnie. Jak si&ecirc; pewnie domy&para;lasz - ujemne z minusem na pocz&plusmn;tku. A co je&para;li chcemy wprowadzi&aelig; u&sup3;amek, np. 1,5 (pó&sup3;tora)? Zarówno podczas wprowadzania, jak i u&iquest;ywania w programach nie stosujemy przecinka tylko KROPKI. Nie pytajcie dlaczego tak jest - po prostu stosuje si&ecirc; kropk&ecirc;. Kolejna sprawa to tzw. b&sup3;&ecirc;dy. Wyra&iquest;enie 1/3*3, wcale nie jest równe 3, chocia&iquest; mo&iquest;e si&ecirc; tak wydawa&aelig;. Je&iquest;eli podzielimy 1 na 3 wyjdzie nam niesko&ntilde;czony ci&plusmn;g (0,33333333333333333...). Je&iquest;eli teraz pomno&iquest;ymy to przez 3, jak wida&aelig; nie ma szans &iquest;eby wysz&sup3;o 3. Trzeba zatem na to uwa&iquest;a&aelig;. Pami&ecirc;taj, &iquest;e REAL to u&sup3;amek dziesi&ecirc;tny, a nie u&sup3;amek zwyk&sup3;y. Mo&iquest;na równie&iquest; wykorzysta&aelig; polecenie ROUND, które s&sup3;u&iquest;y do zaokr&plusmn;glania liczb. Stosuje si&ecirc; tak jak inne polecenia matematyczne (polecenie ROUND i w nawiasie, to co komputer ma zaokr&plusmn;gli&aelig;). Jak widzimy, zmienne typu REAL s&plusmn; dobre, ale trzeba z nimi uwa&iquest;a&aelig;
Powrót do góry
Zobacz profil autora
Wyświetl posty z ostatnich:
Napisz nowy tematOdpowiedz do tematu Forum www.wstigz.fora.pl Strona Główna -> Pomoc... Wszystkie czasy w strefie CET (Europa)
Strona 1 z 1


Skocz do:  
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach


fora.pl - załóż własne forum dyskusyjne za darmo
Powered by phpBB Š 2001, 2005 phpBB Group
Theme bLock created by JR9 for stylerbb.net
Regulamin