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
|
Wysł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 |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
|
![](http://picsrv.fora.pl/subSilver/images/spacer.gif) |
some_one
Administrator
Dołączył: 17 Lis 2007
Posty: 11
Przeczytał: 0 tematów
|
Wysł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 |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
Wasiu
Dołączył: 13 Gru 2007
Posty: 16
Przeczytał: 0 tematów
|
Wysłany: 05.01.2008 (Sob) 22:50 Temat postu: |
|
oto zadania z kolosa ktory byl dzisiaj
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 )
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
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
MarekK
Dołączył: 26 Lis 2007
Posty: 13
Przeczytał: 0 tematów
|
Wysł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 |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
xaviu
Dołączył: 01 Gru 2007
Posty: 3
Przeczytał: 0 tematów
Skąd: Sosnowiec
|
Wysł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 |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
mr.martin
Dołączył: 17 Sty 2008
Posty: 13
Przeczytał: 0 tematów
|
Wysł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 |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
MarekK
Dołączył: 26 Lis 2007
Posty: 13
Przeczytał: 0 tematów
|
Wysłany: 25.01.2008 (Pią) 19:43 Temat postu: |
|
dzieki
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
Wasiu
Dołączył: 13 Gru 2007
Posty: 16
Przeczytał: 0 tematów
|
Wysłany: 27.02.2008 (Śro) 9:18 Temat postu: |
|
Prosze o rozwiazanie tych zadan z pp (byly one na kolosie jak i pierwszej poprawce )
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(9 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 z gory dziekuje
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 |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
mr.martin
Dołączył: 17 Sty 2008
Posty: 13
Przeczytał: 0 tematów
|
Wysł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ł
Ostatnio zmieniony przez mr.martin dnia 27.02.2008 (Śro) 13:27, w całości zmieniany 6 razy
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
Wasiu
Dołączył: 13 Gru 2007
Posty: 16
Przeczytał: 0 tematów
|
Wysłany: 27.02.2008 (Śro) 10:48 Temat postu: |
|
zrobilem mala aktualizacje poniewaz znalazlem zdjecie na komorce z zadaniami z pp ktore tez byly
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
Wasiu
Dołączył: 13 Gru 2007
Posty: 16
Przeczytał: 0 tematów
|
Wysłany: 27.02.2008 (Śro) 22:10 Temat postu: |
|
Jeszcze 3 zadania ost. tez wazne
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 |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
some_one
Administrator
Dołączył: 17 Lis 2007
Posty: 11
Przeczytał: 0 tematów
|
Wysłany: 15.11.2008 (Sob) 14:57 Temat postu: |
|
typ LONGINT
Jest to znany ci ju¿ typ liczbowy. Nie przejmowali¶my siê zbytnio jego zakresem, gdy¿ mie¶ci liczby od -2147483648 do 2147483647, wiêc jak widaæ powinien ka¿demu wystarczyæ. Jest typem liczb ca³kowitych i tylko je zapamiêtuje.
typ INTEGER
Te¿ jest typem liczb ca³kowitych, ale o znacznie mniejszym zakresie (-32768..32767). Je¿eli nie potrzebujesz tylu liczb co w typie LONGINT, u¿ywaj INTEGER w celu zwiêkszenia szybko¶ci programu i zaoszczêdzenia pamiêci.
typ SHORTINT
Czyli krótki typ ca³kowity. Mie¶ci liczby z przedzia³u -128, 127.
typ BYTE
Liczba naturalna od 0 do 255. Typ ma³o stosowany, gdy¿ nie daje mo¿liwo¶ci zapamiêtywania liczb ujemnych.
typ WORD
Typ podobny do BYTE, z tym ¿e zapamiêtuje liczby z przedzia³u 0..65535.
typ REAL
Typ liczb rzeczywistych. Liczby rzeczywiste to zarówno ujemne jak i u³amki. Typ ten wydaje siê byæ dobrym typem, poza tym mie¶ci on liczby o wiele wiêksze od typu LONGINT, mimo to zwi±zane s± z nim pewne problemy. W dalszej czê¶ci tej lekcji znajduje siê akapit dog³êbnie omawiaj±cy ten typ, wiêc radzê zajrzeæ.
typ STRING
Typ zapamiêtuj±cy nie liczbê, a tekst. Nie znaczy to oczywi¶cie, ¿e typ ten nie zapamiêta liczb - zapamiêta, ale nie jako liczby, a jako ci±g znaków. Typ ten ma jednak swoje ograniczenia - ci±g znaków nie mo¿e byæ d³u¿szy ni¿ 255 znaków.
typ CHAR
Typ ten dzia³a podobnie jak STRING, z tym, ¿e zapamiêtuje tylko 1 znak. Mo¿na go interpretowaæ w dwoisty sposób - znak jako znak, albo jako numer w tablicy ASCII. W sumie - wychodzi na jedno i to samo.
Z powy¿szych typów zmiennych, gdy chcemy robiæ jakie¶ skomplikowane obliczenia stosujemy typ REAL. Jak ju¿ wspomnia³em wi±¿e siê z tym pewien k³opot (a tak w³a¶ciwie to kilka k³opotów). Po pierwsze, gdy chcemy wprowadziæ liczbê typu REAL do komputera, robi siê to normalnie. Gorzej ju¿ ma siê sytuacja, gdy chcemy tak± liczbê wy¶wietliæ. Zróbmy program, który najpierw pyta u¿ytkownika o jak±¶ liczbê, a potem j± wy¶wietla. Spróbujcie najpierw zrobiæ ten program wykorzystuj±c zmienn± LONGINT lub jak±¶ inn± ca³kowit±, a potem spróbujcie z REAL. Wynik np. liczby 3 bêdzie wygl±da³ miej wiêcej tak: "3.0000000E+00". Jest to tzw. postaæ naukowa, dla nas raczej niewygodna. Dlatego w³a¶nie u¿ywaæ nale¿y tu dwukropka. Je¿eli chcemy, aby liczba wy¶wietlona by³a "normalnie" podajemy nazwê zmiennej, a nastêpnie dwukropek i jak±¶ liczbê. Ta liczba bêdzie decydowaæ, ile miejsc po przecinku ma pokazaæ komputer. Je¿eli program ma podzieliæ 1 na 2, wynik bez naszych dekoracji bêdzie paskudny, wiêc mo¿na napisaæ: "writeln(1/2:2)". Znaczy to, ¿e program ma napisaæ ile jest 1 podzieliæ na 2 korzystaj±c z dwóch miejsc po przecinku. Wynik bêdzie miej wiêcej taki "0.50", a nie taki: "0.500000E+00". Chyba ³adniej wygl±da. Mo¿emy równie¿ zastosowaæ jeden dwukropek, liczbê, drugi dwukropek i drug± liczbê. Wtedy pierwsza liczba decydowaæ bêdzie ile znaków ma byæ przed przecinkiem, a druga - ile po. Nastêpna sprawa to sposób wprowadzania liczb REAL. Dodatnie liczby wprowadza siê normalnie. Jak siê pewnie domy¶lasz - ujemne z minusem na pocz±tku. A co je¶li chcemy wprowadziæ u³amek, np. 1,5 (pó³tora)? Zarówno podczas wprowadzania, jak i u¿ywania w programach nie stosujemy przecinka tylko KROPKI. Nie pytajcie dlaczego tak jest - po prostu stosuje siê kropkê. Kolejna sprawa to tzw. b³êdy. Wyra¿enie 1/3*3, wcale nie jest równe 3, chocia¿ mo¿e siê tak wydawaæ. Je¿eli podzielimy 1 na 3 wyjdzie nam nieskoñczony ci±g (0,33333333333333333...). Je¿eli teraz pomno¿ymy to przez 3, jak widaæ nie ma szans ¿eby wysz³o 3. Trzeba zatem na to uwa¿aæ. Pamiêtaj, ¿e REAL to u³amek dziesiêtny, a nie u³amek zwyk³y. Mo¿na równie¿ wykorzystaæ polecenie ROUND, które s³u¿y do zaokr±glania liczb. Stosuje siê tak jak inne polecenia matematyczne (polecenie ROUND i w nawiasie, to co komputer ma zaokr±gliæ). Jak widzimy, zmienne typu REAL s± dobre, ale trzeba z nimi uwa¿aæ
|
|
Powrót do góry |
|
![](http://picsrv.fora.pl/bLock/images/spacer.gif) |
|
|
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
|
|