rozwiazania zadan, kolokwium


ROZWIĄZANIA ZADAŃ Z KOLOKWIUM

Aby umożliwić Państwu samokontrolę przygotowano rozwiązania zadań, łącznie z komentarzami.

Zadanie 1

Napisz program, który policzy wartość zapłaconego podatku, dla progów: do 10000 - 20%, pomiędzy 10000 a 20000 - 30% i powyżej 20000 - 50%.

W zadaniu powinniśmy skorzystać z instrukcji warunkowej IF.

Oto rozwiązanie:

Program podatki;

Uses crt;

Var kwota, podatek: Real;

BEGIN

Clrscr;

Writeln(`napisz kwotę do opodatkowania');

Readln(kwota);

IF kwota<10000 then podatek:=kwota*0.2;

IF (kwota>10000) AND (kwota<20000) then podatek:=kwota*3;

IF kwota>20000 then podatek:=kwota*0.5;

Writeln(`Dla zarobków `,kwota:5:2,' podatek wyniesie `,podatek:5:2);

Readln;

End.

Zadanie 2

Napisz program, który wyniki pośrednie oraz wynik końcowy dla drogi przebytej w ruchu jednostajnym po upływie 1, 2, 3,... 10 minut, jeśli obiekt porusza się z szybkością 20 m/minutę. Napisz wyniki pośrednie.

Zadanie korzysta z pętli o znanej ilości powtórzeń (od 1 do 10), czyli FOR. Wszystkie wyprowadzenia obliczeń muszą być w pętli. Nie muszę nic wczytywać z klawiatury, opcje zadania są już określone.

Oto rozwiązanie:

Program droga;

Uses crt;

Var i: integer;

s: Real;

BEGIN

Clrscr;

For i:=1 to 10 do

Begin

S:=20*i;

Writeln(`droga przebyta po `,i,' minutach wynosi `,s:5:2,' metrów');

End;

Writeln(`Całkowita droga przebyta po 10 minutach wynosi `,s:5:2,' metrów');

Readln;

End.

Zadanie 3

Napisz program, który policzy pole powierzchni okręgu i kwadratu opisanego na nim. Daną wczytywaną z klawiatury jest promień okręgu.

Warto zauważyć, że jeśli znam promień okręgu to bok kwadratu jest podwojonym promieniem. Jeśli promień będzie zmienną r to bok kwadratu wyniesie 2*r.

Oto rozwiązanie:

Program opisany;

Uses crt;

Var r,sk,so:Real;

BEGIN

Clrscr;

Writeln(`Podaj promień koła');

Readln(r);

So:=Pi*sqr(r);

Sk:=sqr(2*r);

Writeln(`pole koła o promieniu `,r:3:2,' wynosi `,so:5:2);

Writeln(`pole kwadratu opisanego wynosi `,sk:5:2);

Readln;

End.

Zadanie 4

Napisz program, który zależnie od wyboru policzy: pole powierzchni kwadratu lub pole powierzchni koła. Program musi pytać się o dokonanie wyboru, a następnie odczytać z klawiatury długość boku lub promień koła.

W programie musimy użyć instrukcji wyboru CASE. Reszta jest czysto rachunkowa.

Oto rozwiązanie:

program wybor;

uses crt;

var a:char;

b,pk,po:real;

begin

clrscr;

writeln('Podaj do wyboru, czy liczysz pole okregu - o, czy kwadratu - k');

readln(a);

case a of

'o' : begin

writeln('wybrales okrag, wiec podaj jego promien');

readln(b);

po:=3.14*sqr(b);

writeln('pole powierzchni kola wynosi ',po:5:3);

end ;

'k' : begin

writeln('wybrales kwadrat, wiec podaj dlugosc boku');

readln(b);

pk:=sqr(b);

writeln('pole powierzchni kwadratu wynosi ',pk:5:3);

end

else writeln('dokonales zlego wyboru');

end;

readln;

end.

Zadanie 5

Napisz program, który będzie wczytywać liczby, aż do napisania zera. Policz sumę liczb dodatnich oraz liczb ujemnych.

W programie musi być użyta pętla warunkowa, gdyż ilość elementów nie jest znana. Warunkiem załamania pętli musi być liczba zero.

Oto rozwiązanie:

program liczby;

uses crt;

var a,su,sd:real;

begin

clrscr;

Writeln('napisz liczby dodatnie i ujemne, zakoncz wprowadzajac zero');

sd:=0;

su:=0;

repeat

writeln('napisz liczbe');

readln(a);

if a>0 then sd:=sd+a else su:=su+a;

until a=0;

writeln('suma liczb dodatnich wynosi ',sd:5:2,' zas ujemnych ',su:5:2);

readln;

end.

Zadanie 6

Napisz program, który policzy kolejne potęgi liczby cztery. Wyniki napisz dla wykładników od 1 do 10.

Musimy użyć pętli o znanej liczbie powtórzeń (for) mnożąc przez siebie wielokrotnie liczbę 4. Nie potrzebujemy nic wczytywać z klawiatury.

Oto rozwiązanie:

program potegi4;

uses crt;

var a,i:longint;

begin

writeln('oto kolejne potegi liczby 4');

a:=1;

for i:=1 to 10 do

begin

a:=4*a;

writeln('4 do potegi ',i,' wynosi ',a);

end;

readln;

end.

Zadanie 7

Napisz program, który policzy największą liczbę x spełniającą nierówność 22x2-2x-5<1350

Zadanie powinniśmy liczyć w pętli o nieznanej ilości powtórzeń. Warunkiem załamania pętli musi być przekroczenie liczby 1350.

Oto rozwiązanie:

program nierownosc;

uses crt;

var x,a:integer;

begin

clrscr;

repeat

x:=x+1;

a:=22*sqr(x)-2*x-5;

until a>1350;

x:=x-1;

writeln('najwieksza liczba spelniajaca nierownosc jest ',x);

readln;

end.

Zadanie 8

Napisz program, który po dokonaniu wyboru policzy objętość kuli lub sześcianu. Program musi zaproponować możliwość wyboru i kolejno wczytać długość boku lub promień kuli.

Musi być użyta instrukcja wyboru CASE.

program bryly;

uses crt;

var a:char;

x,vk,vs:real;

begin

clrscr;

Writeln('jesli chcesz liczyc objetosc kuli napisz k, jesli szescianu napisz s');

readln(a);

case a of

'k': begin

writeln('podaj promien kuli');

readln(x);

vk:=(4/3)*3.14*x*x*x;

writeln('objetosc kuli wynosi ',vk:5:2);

end;

's': begin

writeln('podaj dlugosc boku szescianu');

readln(x);

vs:=x*x*x;

writeln('objetosc szescianu wynosi ',vs:5:2);

end

else

writeln('dokonales zlego wyboru');

end;

readln;

end.

Zadanie 9

Napisz program, który wypisze drogę przebytą przez pocisk karabinowy poruszający się ruchem jednostajnie przyspieszonym po upływie 1, 2, 3,...,20 sekundach. Przyspieszenie 10m/s2.

Program wymaga pętli for, zaś w niej wypisywanie wyników. Nie wprowadzamy żadnych danych z klawiatury.

Oto rozwiązanie:

program pocisk;

uses crt;

const a=10;

var s: real;

t: integer;

begin

clrscr;

for t:=1 to 20 do

begin

s:=a*t*t;

writeln('po ',t,' sekundach pocisk przelecial ',s:5:2,' mertow');

end;

readln;

end.

Zadanie 10

Oblicz wartość akcyzy, jeśli od obrotów do 1000 zł stawka wynosi 20%, w przedziale 1000 do 2500=200+25% od kwoty powyżej 1000 zł, dla obrotów powyżej 2500=500+30% od kwoty powyżej 2500 zł.

Program wymaga jedynie odpowiedniego użycia instrukcji warunkowej IF. Musimy być zapytani o wielkość obrotów.

Oto rozwiązanie:

program akcyza1;

uses crt;

var kwota, akcyza: real;

begin

clrscr;

writeln('podaj kwote obrotow');

readln(kwota);

if (kwota<1000) then akcyza:=kwota*0.2;

if (kwota>1000) and (kwota<2500) then akcyza:=200+(kwota-1000)*0.25;

if kwota>2500 then akcyza:=500+(kwota-2500)*0.3;

writeln('dla obrotow ',kwota:5:2,' akcyza wynosi ',akcyza:5:2);

readln;

end.

Zadanie 11

Napisać program, który znajdzie największą liczbę całkowitą spełniającą nierówność
15x
2-3x-12<1000.

Program wymaga użycia pętli o nieznanej liczbie powtórzeń, gdzie warunkiem załamania pętli będzie przekroczenie liczby 1000. Nie wprowadzamy żadnych danych z klawiatury.

Oto rozwiązanie:

program nierownosc;

uses crt;

var x,a:integer;

begin

clrscr;

repeat

x:=x+1;

a:=15*sqr(x)-3*x-12;

until a>1000;

x:=x-1;

writeln('najwieksza liczba spelniajaca nierownosc jest ',x);

readln;

end.

Zadanie 12

Napisz program rozkładania dowolnej liczby na liczby pierwsze, który po wczytaniu liczby z klawiatury wyprowadzi komunikat: liczba pierwsza, liczba złożona - stosownie do sytuacji.

W programie zastosujemy algorytm, który będzie sprawdzał resztę z dzielenia danej liczby przez kolejne począwszy od 2 (2,3,4,...,n). Liczba w efekcie i tak podzieli się przez samą siebie. Liczba pierwsza nie będzie miała innych podzielników więc na zakończenie wystarczy sprawdzić czy wynik nie jest daną liczbą.

Musimy zastosować pętlę warunkową, w której warunkiem załamania będzie zerowa reszta z dzielenia.

Oto rozwiązanie:

program pierwsze;

uses crt;

var a,b,z: integer;

begin

clrscr;

writeln('napisz liczbe calkowita');

readln(a);

b:=1;

repeat

b:=b+1;

z:=a mod b;

until z=0;

if b=a then writeln('liczba jest liczba pierwsza')

else writeln('liczba jest liczba zlozona');

readln;

end.

Zadanie 13

Obliczyć czy suma cyfr liczby wprowadzonej z klawiatury jest parzysta. Liczba jest dowolnej długości, wczytuję ją jako jedną liczbę.

Program do liczenia sumy cyfr był podany na wykładzie, wystarczy dopisać warunek badania parzystości wyniku.

Oto rozwiązanie:

program cyfry;

uses crt;

var k:longint;

n,s: integer;

begin

clrscr;

writeln('Podaj liczbe calkowita');

readln(k);

n:=0;

s:=0;

repeat

s:=s+(k mod 10);

k:=k div 10;

n:=n+1;

until k=0;

if s mod 2 =0 then

writeln(' smua liczb wynosi ',s,' i jest parzysta') else

writeln('suma liczb wynosi ',s,' i jest nieparzysta');

readln;

end.

Zadanie 14

Wczytać 15 liczb całkowitych. Policzyć różnicę między sumą liczb dodatnich a sumą liczb ujemnych.

Musimy w pętli for wprowadzić 15 liczb. Każdą z nich sprawdzić czy jest dodatnia czy ujemna. Sumować odpowiednie wartości - to wykonuje się instrukcją IF.

Oto rozwiązanie:

program sumy;

uses crt;

var liczba,sd,su:real;

i:integer;

begin

clrscr;

for i:=1 to 15 do

begin

writeln('napisz liczbe');

readln(liczba);

if liczba>0 then

sd:=sd + liczba

else

su:=su + liczba;

end;

writeln('roznica miedzy suma liczb dodatnich a ujemnych wynosi ',sd-su:5:2);

readln;

end.

Zadanie 15

Napisać program znajdujący największą liczbę, której trzecia potęga jest mniejsza od 1200.

Powinniśmy w pętli o nieznanej liczbie powtórzeń zwiększać co jeden liczbę i sprawdzać warunek załamania pętli. Później od tej liczby należy odjąć jeden.

Oto rozwiązanie:

program potegi;

uses crt;

var i,n:integer;

begin

clrscr;

repeat

i:=i+1;

n:=i*i*i;

until n>1200;

i:=i-1;

writeln('najwieksza liczba spelniajaca warunek jest ',i);

readln;

end.

Zadanie 16

Ciało spada swobodnie. Oblicz jaką drogę przebędzie po 1,2,3,…,10 sekundach. Wyniki wyświetl na ekranie.

Zadanie nie wymaga wprowadzania danych. Użycie pętli for wystarczy do rozwiązania zadania.

Oto rozwiązanie:

program spadanie;

uses crt;

const g=9.81;

var t:integer;

s:real;

begin

clrscr;

for t:=1 to 10 do

begin

s:=g*sqr(t)/2;

writeln('po uplywie ',t,' sekund, ciao przebyo droge ',s:5:3,' metrow');

end;

readln;

end.

Zadanie 17

Wczytaj k kolejnych liczb z klawiatury i oblicz ich sumę oraz średnią arytmetyczną. Wynik wyświetl na ekranie.

Musimy zadać pytanie co do ilości liczb i w pętli for wprowadzić je do programu. Sumowanie również w pętli. Później sumę podzielić przez ilość i wyświetlić wynik.

Oto rozwiązanie:

program sredniak;

uses crt;

var liczba,suma,srednia:real;

i,n:integer;

begin

clrscr;

writeln('dla ilu liczb chcesz liczyc srednia');

readln(n);

for i:=1 to n do

begin

writeln('podaj ',i,' liczbe');

readln(liczba);

suma:=suma + liczba;

end;

srednia:=suma/n;

writeln('srednia wprowadzonych liczb wynosi ',srednia:5:5);

readln;

end.

Zadanie 18

Mając dane: zbiór liczb całkowitych a{-5≤ x ≤ 10} oraz zbiór B{-1≤x≤25} napisz program, który po wprowadzeniu liczby określi, czy należy ona do iloczynu zbiorów A i B.

Program rozwiązuje się jedną instrukcją warunkową IF. Nie wolno jest samodzielnie określać iloczynu zbiorów.

Oto rozwiązanie:

program zbiory;

uses crt;

var liczba:real;

begin

clrscr;

writeln('podaj liczbe');

readln(liczba);

if (liczba>=-5) and (liczba<=10) and (liczba>=-1) and (liczba<=25) THEN

writeln('liczba nalezy do iloczynu zbiorow') else

writeln('liczba nie nalezy do iloczynu zbiorow');

readln;

end.

Zadanie 19

Mając dany promień koła r oblicz jego pole powierzchni oraz pole powierzchni trójkąta równobocznego wpisanego w to koło. Oblicz stosunek powierzchni obu figur.

Zadanie rachunkowe. Mając dany promień to pole powierzchni trójkąta równobocznego wpisanego w okrąg wyniesie

0x01 graphic

Oto rozwiązanie:

Program trojkat;

uses crt;

var r,po,pt:real;

begin

clrscr;

writeln('podaj promien kola');

readln(r);

po:=Pi*sqr(r);

pt:=(9*sqr(r)*sqrt(3))/12;

writeln('pole powierzchni kola wynosi ',po:5:5);

writeln('pole powierzchni wpisanego trojkata wynosi ',pt:5:5);

writeln('stosunek powierzchni okregu do powierzchni trojkata wynosi ',po/pt:5:5);

readln; end.

Zadanie 20

Napisz program obliczania średniej arytmetycznej ciągu liczb zakończonego zerem. Liczby wpisuję w dowolnej ilości, kończę wpisując zero.

Musimy użyć pętli warunkowej, której załamanie nastąpi w chwili wprowadzenia zera. Dodatkowo musimy prowadzić licznik żeby policzyć ilość wprowadzonych liczb, który na zakończenie musimy zmniejszyć o jeden, żeby zero nie było wliczane do ilości liczb.

Oto rozwiązanie:

program srednia1;

uses crt;

var i:integer;

suma,srednia,liczba:real;

begin

clrscr;

liczba:=1;

while liczba<>0 do

begin

i:=i+1;

writeln('napisz liczbe ',i);

readln(liczba);

suma:=suma+liczba;

end;

srednia:=suma/(i-1);

writeln('srednia wprowadzonego ciagu liczb wynosi ',srednia:5:5);

readln;

end.

Zadanie 21

Napisz program, który policzy do wyboru pola powierzchni: kwadratu, trójkąta równobocznego, koła, prostokąta.

Musimy użyć instrukcji wyboru CASE.

Oto rozwiązanie

program pola;

uses crt;

var wybor:char;

b1,b2,pk,po,pt,pp:real;

begin

clrscr;

writeln('dokonaj wyboru:k-kwadrat,o-kolo,t-trojkat,p-prostokat');

readln(wybor);

case wybor of

'k':

begin

writeln('wybrales kwadrat, podaj dlugosc jego boku');

readln(b1);

pk:=sqr(b1);

writeln('pole powierzchni kwadratu wynosi ',pk:5:5);

end;

'o':

begin

writeln('wybrales okrag, podaj jego promien');

readln(b1);

po:=Pi*sqr(b1);

writeln('pole powierzchni kola wynosi ',po:5:5);

end;

't':

begin

writeln('wybrales trojkat rownoboczny, podaj dlugosc jego boku');

readln(b1);

pt:=(sqr(b1)*sqrt(3))/4;

writeln('pole powierzchni trojkata wynosi ',pt:5:5);

end;

'p':

begin

writeln('wybrales prostokat, podaj dlugosci bokow ');

readln(b1,b2);

pp:=b1*b2;

writeln('pole powierzchni prostokata wynosi ',pp:5:5);

end

else writeln('dokonales niewlasciwego wyboru');

end;

readln;

end.

Zadanie 22

Napisz program, który policzy drogę przebytą przez samochód jadący ze stałą szybkością 50km/h po 10,20,30,…,60 minutach. Wyniki przedstaw dla poszczególnych wartości czasu.

W pętli for zadanie nie wymagające wprowadzania danych. Czas musimy pomnożyć przez 10 oraz podzielić przez 60 (jest w minutach).

Oto rozwiązanie:

program droga;

uses crt;

var t:integer;

s,a:real;

begin

clrscr;

for t:=1 to 6 do

begin

a:=t*10/60;

s:=50*a;

writeln('po czasie ',t*10,' minut, samochod przejechal ',s:5:5,' kilometrow');

end;

readln;

end.

Zadanie 23

Napisz program, który po wprowadzeniu liczby z klawiatury sprawdzi czy jest ona liczbą pierwszą.

Algorytm powinien sprawdzić, czy dana liczba dzieli się przez 2,3,4,…,n. Jeśli reszta z dzielenia jest zero to pozostaje sprawdzić czy liczba nie dzieli się przez samą siebie - liczba pierwsza w innym przypadku liczba złożona.

Oto rozwiązanie:

program pierwsze;

uses crt;

var a,b,z: integer;

begin

clrscr;

writeln('napisz liczbe calkowita');

readln(a);

b:=1;

repeat

b:=b+1;

z:=a mod b;

until z=0;

if b=a then writeln('liczba jest liczba pierwsza')

else writeln('liczba jest liczba zlozona');

readln;

end.

Zadanie 24

Napisz program, który po wprowadzeniu z klawiatury licznika i mianownika ułamka, napisze czy jest to ułamek właściwy oraz uprości go dzieląc przez największy wspólny podzielnik.

Ułamek jest właściwy jeśli licznik jest mniejszy od mianownika. Przystępując do upraszczania ułamka musimy dane pierwotne zapamiętać w zmiennych pomocniczych, gdyż algorytm wyszukiwania NWD zlikwiduje je.

Oto rozwiązanie:

program ulamek;

uses crt;

var l,l1,m,m1,nwd:integer;

begin

clrscr;

writeln('podaj licznik ulamka');

readln(l);

l1:=l;

writeln('podaj mianownik ulamka');

readln(m);

m1:=m;

if l>m then writeln('ulamek niewlasciwy') else

writeln('ulamek wlasciwy');

while l<>m do

if l>m then l:=l-m else m:=m-l;

nwd:=l;

writeln(' uproszczony ulamek to ',l1/l:5:1,'/',m1/l:5:1);

readln;

end.

Mam nadzieję, że zadania nie były zbyt skomplikowane.

12



Wyszukiwarka

Podobne podstrony:
Rozwiązania zadań z kolokwium 1 roku 2012, kolokwium
Rozwiązania zadań kolokwialnych
AMI 09 1 Kolokwium przykładowe I rozwiązania zadań
AMI 09 1 Kolokwium przykładowe I rozwiązania zadań
rozwiazywanie zadan tekstowych wb
efekt plejotropowy rozwiazanie zadań 1
cw8s rozwiazania zadan new id 123854
Metodyka rozwiązywania zadań, Transport Politechnika, Semestr 1, Fizyka
Rozwiązania zadań sprawdzających EKONOMIA działy 1-4, UP, ekonomia
Octan izoamylu rozwiązanie zadań
dodawanie rozwiazywanie zadań
38 Olimpiada Wiedzy Technicznej I Stopień Rozwiązania Zadań
Logika rozwiazania zadan id 272023
GM P1 142 Rozwiazania zadan i s Nieznany
CIĄGI – rozwiązanie zadań
Chromatografia rozwiązania zadań

więcej podobnych podstron