Zobacz poprzedni temat :: Zobacz następny temat |
Autor |
Wiadomość |
Greif
Administrator
Dołączył: 15 Sty 2007
Posty: 756
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Piotrowice k.Oświęcimia
|
Wysłany: Sob 21:21, 20 Sty 2007 Temat postu: Kolokwium grupy 2 |
|
|
Pytania gr.2
Cytat: | A.
1. Zadeklaruj:
- typ rekordowy o nazwie Książka zawierający pola: imię i nazwisko autora, tytuł książki, rok wydania,
- typ tablicowy o nazwie Katalog będący jednowymiarową tablicą rekordów typu książka,
- zmienną tablicową typu katalog,
- zmienną typu łańcuchowego.
2. Ile będzie wynosiło s po wykonaniu następującego ciągu instrukcji. Przedstaw wyniki obliczeń na kartce:
s:=1;
n:=5;
For k:=1 to n do
s:=s*k;
3. Napisz instrukcję lub ciąg instrukcji, które wypiszą na ekranie monitora tablicę złożoną z 10 elementów typu rzeczywistego.
4. Napisz instrukcję realizującą następujące zadanie:
Jeśli x=1, to y=x
Jeśli x=2, to y=0
5. Zamień instrukcję for na while, tak aby treść algorytmu pozostała identyczna:
s:=0;
For k:=1 to n do
s:=s+k; |
Cytat: | B.
1.Zadeklaruj:
- zmienną tablicową reprezentującą tablicę jednowymiarową, której elementami są liczby całkowite,
- zmienną typu łańcuchowego,
- zmienną typu rzeczywistego
2. Napisz instrukcję lub ciąg instrukcji, które wczytają tablicę złożoną z 6 elementów typu łańcuchowego.
3. Jak będzie wyglądał wydruk po
for numer:=1 to 6 do
writeln(‘*’);
4. Napisz instrukcję realizującą następujące zadanie;
jeśli x=1, to z=a+b
x=2, to z=a-b
x=3, to z=a*b
x=4, to z=a/b
5. Zdefiniuj funkcję, która oblicza wartość następującego wyrażenia:
y=3z2+5z-z (3 razy z do kwadratu)
|
Jeżeli ktoś z Was umie to napisać, to proszę bardzo, piszcie...
Proszę tylko, żeby pisać np. Ad.A3 albo Ad.B4 i dopiero pomysł na rozwiązanie. Chodzi o porządek, swoje posty możecie edytować lub całkiem usunąć. Usunąć tylko pod warunkiem, że nikt na niego jeszcze nie odpowiedział (jak tak, to pisać do mnie). Wszystko jest w FAQ.
Jak się odrobię, to może coś sam napiszę...
Jak zwykle, fragmenty programów obejmujemy znacznikiem CODE
Pozdrawiam
Post został pochwalony 0 razy
Ostatnio zmieniony przez Greif dnia Pią 12:26, 26 Sty 2007, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
 |
|
 |
Greif
Administrator
Dołączył: 15 Sty 2007
Posty: 756
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Piotrowice k.Oświęcimia
|
Wysłany: Pon 1:10, 22 Sty 2007 Temat postu: Moja grupa |
|
|
A1 - Autorka: zmoniasta
Kod: | type
ksiazka=rekord
imie:string[20];
nazwisko: string[30];
tytul:string[50];
rok_wydania:integer;
end;
katalog = array[1..100] of ksiazka;
var
zmienna1:katalog;
zmienna2:string[15]; |
A2 - Autor: Greif
Wynik:
Program sprawdzający:
Kod: | Program petla_for;
var s,n,k:integer;
begin
s:=1;
n:=5;
for k:=1 to n do
s:=s*k;
writeln(s);
readln;
end. |
A3 - Autorka: zmoniasta
Kod: | for i:=1 to 10 then
writeln(tablica[i]); |
A4 - Autorka: zmoniasta
Kod: | if x=1 then
y:=x;
if x=2 then
y:=0; |
A5 - Autorka - zmoniasta
Kod: | s:=0;
k:=1;
while k<=n do
begin
s:=s+k;
k:=k+1;
end;
|
=====================================
B1 - Autorka: zmoniasta
Kod: | var
zmienna1:array[1..100] of integer;
zmienna2:string[15];
zmienna3:real; |
B2 - Autorka: zmoniasta
Kod: | for i:=1 to 6 then
tablica[i]:=’aaaa’; |
B3 - Autor: Greif
Wynik:
Program sprawdzający:
Kod: | program gwiazdek6;
uses crt;
var number:integer;
begin
clrscr;
for number:=1 to 6 do
writeln('*');
readln;
end. |
B4 - Autor: Greif
Tutaj poległem, bo nigdy nie używałem instrukcji CASE w programach. A pewnie wystarczyło wpisać:
Kod: | readln(c);
case c of
1:z:=a+b;
2:z:=a-b;
3:z:=a*b;
4:z:=a/b;
else
writeln('tekst');
end;
writeln(z); |
Program sprawdzający działanie:
Kod: | Program case_dzialania;
var a,b,z:real;
c:byte;
begin
write('Podaj a = '); readln(a);
write('Podaj b = '); readln(b);
writeln;
writeln('Wybierz działanie i naciśnij ENTER');
repeat
writeln('[1] Dodawanie');
writeln('[2] Odejmowanie');
writeln('[3] Mnożenie');
writeln('[4] Dzielenie');
readln(c);
case c of
1:z:=a+b;
2:z:=a-b;
3:z:=a*b;
4:z:=a/b;
else
writeln('Wybierz w końcu działanie i naciśnij ENTER');
end;
until (c>0) and (c<5);
writeln(z:10:3);
readln;
end. |
Jeszcze jedno rozwiązanie - Autor: mogur, zmoniasta
Kod: | program gr2B4;
var x,a,b:real;
begin
writeln(' wpisz x: ');
readln(x);
if x=1 then
writeln('z=a+b');
if x=2 then
writeln('z=a-b');
if x=3 then
writeln('z=a*b');
if x=4 then
writeln('z=a/b');
readln
end.
|
Uważam, że ta wersja z 'if' nie odpowiada do końca założeniom, bo po wybraniu 1..4, program wypisuje odpowiedni ciąg zamiast liczyć. Ale sami oceńcie i się wypowiedzcie.
B5 - Autor: mogur, zmoniasta
Kod: | function row_lin2B5 (z:real):real;
begin
y:=(3*Sqr(z))+(5*z)-z;
end; |
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Bernadka
Początkujący
Dołączył: 17 Sty 2007
Posty: 8
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Kraków
|
Wysłany: Śro 13:51, 24 Sty 2007 Temat postu: |
|
|
B4 wg mnie powinno być
Kod: |
readln(c);
case c of
1:z:=a+b;
2:z:=a-b;
3:z:=a*b;
4:
begin
if b<>0 then z:=a/b
else writeln('Nie wolno dzielić przez 0')
end;
writeln(z);
|
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Greif
Administrator
Dołączył: 15 Sty 2007
Posty: 756
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Piotrowice k.Oświęcimia
|
Wysłany: Śro 14:36, 24 Sty 2007 Temat postu: I bardzo dobrze |
|
|
Pewnie, że może być, ja już nie miałem siły w nocy go upiększać...
Po CASE ma być tylko jedna instrukcja, więc nie wiem, czy tak będzie to działało...
Napisz program, sprawdź i wklej, bo u mnie errory wyskakują...
Pozdrawiam
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Bernadka
Początkujący
Dołączył: 17 Sty 2007
Posty: 8
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Kraków
|
Wysłany: Śro 21:46, 24 Sty 2007 Temat postu: |
|
|
Poprawiłam, brakowało enda do case.
Kod: |
readln(c);
case c of
1:z:=a+b;
2:z:=a-b;
3:z:=a*b;
4:
begin
if b<>0 then z:=a/b
else writeln('Nie wolno dzielić przez 0');
end;
end; {end do case}
|
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
moniaskor
Początkujący
Dołączył: 21 Sty 2007
Posty: 12
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
|
Wysłany: Czw 7:07, 25 Sty 2007 Temat postu: ad B5 |
|
|
Ja tylko tróję dostałam i idę na egzamin, więc chyba nie powinnam mieć tu prawa głosu. Nie powinno być po y:=3*z*z*z*z+7 średnika?
Walczcie dalej, no i bazy by się przydały (mam na myśli nieruchomości w Access)
Pozdrowionka
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Greif
Administrator
Dołączył: 15 Sty 2007
Posty: 756
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Piotrowice k.Oświęcimia
|
Wysłany: Czw 12:42, 25 Sty 2007 Temat postu: Ad B5 |
|
|
Hmm... albo jestem ślepy, albo piszesz o innym pytaniu, gdzie to niby jest?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
mogur
Coś już napisał
Dołączył: 15 Sty 2007
Posty: 41
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Alwernia
|
Wysłany: Czw 13:22, 25 Sty 2007 Temat postu: |
|
|
pisze o innej funkcji
3*z^4+7
ale tu chyba też jest błąd w czesci 5z-z ?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Bernadka
Początkujący
Dołączył: 17 Sty 2007
Posty: 8
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Kraków
|
Wysłany: Czw 21:31, 25 Sty 2007 Temat postu: |
|
|
Błąd może jest, w
5z-z
ale tak było na kartce napisane - wiem, bo to była moja graupa -chyba się p.Stanek pomyliła
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
mogur
Coś już napisał
Dołączył: 15 Sty 2007
Posty: 41
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Alwernia
|
Wysłany: Czw 23:14, 25 Sty 2007 Temat postu: |
|
|
też tak uważam, ale nie chciałem być pierwszym, który to napisze,
jest jeszcze jeden błąd, ale to ujawniłem w pliku na stronce,
chodzi o ten brak DO w instrukcji pętli.
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
mogur
Coś już napisał
Dołączył: 15 Sty 2007
Posty: 41
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Alwernia
|
Wysłany: Czw 23:18, 25 Sty 2007 Temat postu: |
|
|
a co do zadania z 4 warunkami, to mój sposób też jest dobry i działa, a "a/b" traktuje jako łańcuch znaków (więc nie ważne że b=0) - i znowu wg mnie oczywiście pani dr nie uściśliła zadania.
dopisek
po dogłębnej analizie BERNADKA MA RACJĘ
należy przypisać bo w treści zadania nie ma wypisz tylko to...
Post został pochwalony 0 razy
Ostatnio zmieniony przez mogur dnia Pią 23:26, 26 Sty 2007, w całości zmieniany 2 razy
|
|
Powrót do góry |
|
 |
Greif
Administrator
Dołączył: 15 Sty 2007
Posty: 756
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Piotrowice k.Oświęcimia
|
Wysłany: Czw 23:55, 25 Sty 2007 Temat postu: |
|
|
No właśnie, w tej sytuacji obie możliwości są dobre (dlatego je obie zamieściłem), ja założyłem i wyraziłem opinię, że gdyby jej chodziło o ciąg znaków, to by tam dała jakieś 'abcd....' a nie konkretne działania...
Właśnie liczę na wymianę zdań tutaj, i niech nikt nie ma oporów, żeby się wypowiedzieć.
Pozdrawiam
Post został pochwalony 0 razy
Ostatnio zmieniony przez Greif dnia Nie 1:32, 20 Maj 2007, w całości zmieniany 1 raz
|
|
Powrót do góry |
|
 |
Bernadka
Początkujący
Dołączył: 17 Sty 2007
Posty: 8
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Kraków
|
Wysłany: Pią 15:34, 26 Sty 2007 Temat postu: |
|
|
B4
Na specjalne życzenie program z case, który u mnie działa i Wam też powinien
Kod: |
program los;
var c:integer; a,b,z:real;
begin
a:=12;
b:=0;
readln(c);
case c of
1: z:=a+b;
2: z:=a-b;
3: z:=a*b;
4: begin
if b<>0 then z:=a/b
else
writeln('Nie wolno');
end;
end;
writeln(z);
end.
|
Przyjęłam tutaj b=0, zeby od razu sprawdzić czy się wywala.
Jeśli chcecie mozecie w programie umieścić dowolne liczby, albo instrukcje redaln(a);
readln(b);
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
Greif
Administrator
Dołączył: 15 Sty 2007
Posty: 756
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Piotrowice k.Oświęcimia
|
Wysłany: Pią 16:12, 26 Sty 2007 Temat postu: |
|
|
Ad. B4
Ja już na serio jestem ślepy, wklejając ten warunek, wyciąłem linijkę z UNTIL, dlatego mi nie działało, i już nie miałem siły sprawdzać, gdzie błąd.
Oczywiście po case może być blok instrukcji.
Pozdrawiam
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
mogur
Coś już napisał
Dołączył: 15 Sty 2007
Posty: 41
Przeczytał: 0 tematów
Ostrzeżeń: 0/5
Skąd: Alwernia
|
Wysłany: Pią 23:43, 26 Sty 2007 Temat postu: |
|
|
ad gr2B4
a może tak
Kod: | program gr2B4;
var z,x,a,b:real;
begin
writeln(' wpisz x: ');
readln(x);
writeln(' wpisz a: ');
readln(a);
writeln(' wpisz b: pamiętaj b nie moze być równe 0');
readln(b);
if x=1 then
z:=a+b;
if x=2 then
z:=a-b;
if x=3 then
z:=a*b;
if x=4 then
z:=a/b;
writeln(z:12:3);
readln
end. |
tylko czemu dla innych wartości x wypisuje 0 ?
Post został pochwalony 0 razy
|
|
Powrót do góry |
|
 |
|