SP w Piotrowicach
Forum Szkoły Podstawowej nr 3 w Piotrowicach

Pascal - Test nr 3

Greif - 2007-11-08, 00:41
Temat postu: Test nr 3
Pytania gr.3

Cytat:
A.

1. Napisz deklaracje dla:
    - zmiennych rzeczywistych (typu rzeczywistego),
    - zmiennych znakowych (typu znakowego),
    - tablicy jednowymiarowej,

2. Napisz instrukcję, wypisywania na ekranie monitora kwadratów liczb od 1 do 10.

3. Napisz instrukcję realizującą następujące zadanie:
Jeśli x≠0, to y=a/x
Jeśli x=0, to y=b.

4. Zdefiniuj funkcję, która oblicza wartość następującego wyrażenia:
y=x3-x+1 (x do potęgi 3)

5. Jaki jest wynik działania następującego ciągu instrukcji, tzn. ile będzie wynosiło k? Przedstaw obliczenia na kartce.
n:=0;
k:=1;
repeat
while k:=2*k+1;
n:=n+1;
until n=5

Cytat:
B.

1. Zadeklaruj:
    a. typ rekordowy o nazwie Pracownik zawierający pola, imię, lata pracy,
    b. zmienną typu Pracownik,
    c. typu znakowego
    d. tablicę reprezentującą tablicę jednowymiarową, której elementem są łańcuchy znaków.

2. Napisz instrukcję wypisywania na ekranie monitora liczb od 1 do 10

3. Jaki jest wynik działania następującego ciągu instrukcji, tzn. ile będzie wynosiło k?
n:=0;
k:=1;
repeat
k:=k+n;
n:=n+1;
until n=4

4. Napisz instrukcję realizującą:
Jeśli d<0, wypisz brak rozwiązania
Jeśli d≥0, wypisz instnieją pierwiastki

5. Zdefiniuj funkcję, która oblicza wartość następującego wyrażenia:
y=x2+1 (x do kwadratu)


===
A1 - Autor: mogur
Kod:
var x:real;
    zn:char;
    a:array[1..n] of integer

A2 - Autor: Greif
Tyle chyba by wystarczyło, chociaż nie wiem, czy begin i end nie są potrzebne
Cytat:
for k:=1 to 10 do
writeln(k*k);

Program:
Kod:
Program petla_for;
var k:integer;
begin
     for k:=1 to 10 do
     writeln(k*k);
readln;
end.

A3 - Autor: mogur
Kod:
program gr3A3;
var x,y,a,b:real;
begin
   writeln(' wpisz x: ');
   readln(x);
   if x<>0 then
      writeln(' y=a/x');
   if x=0 then
      writeln(' y=b');
   readln;
end.

Autor: zmoniasta
Kod:
if x<>0 then y:=a/x;
if x=0 then y:= b;

Autor: Greif
Chyba da się prościej:
Kod:
if x<>0 then y:=a/x else y:= b;

I program:
Kod:
Program Gr3A3;
var a,b,x,y:real;
begin
   a:=1;
   b:=2;
   write('Podaj x = ');readln(x);
      if x<>0 then y:=a/x else y:= b;
      writeln(y:5:3);
   readln {bez średnika też może być}
end.

A4 - Autor: mogur
Kod:
function row_lin3A4 (x:real):real;
begin
   y:=(x*x*x)-x+1;
end;

A5 - Autor: mogur
Jaki jest wynik działania następującego ciągu instrukcji, tzn. ile będzie wynosiło k? Przedstaw obliczenia na kartce.
n:=0;
k:=1;
repeat
while k:=2*k+1;
n:=n+1;
until n=5

Ponieważ instrukcja dopóki ma składnię
while wyrażenie do instrukcja
a w zadaniu nie ma „do” to znaczy, że jest jakaś pomyłka
(pisałem już gdzieś o tym, to jest ta druga pomyłka).

To być może powinno wyglądać tak:
n:=0;
k:=1;
repeat
k:=2*k+1;
n:=n+1;
until n=5
Kod:
program gr3A5;
var k,n:integer;
begin
   n:=0;
   k:=1;
   repeat
      k:=2*k+1;
      n:=n+1;
   until n=5;
   writeln(k:3);
   readln
end.


Na ekranie pokazuje się wynik: 63. Jeżeli jest błąd to nie wiem gdzie?
A z wyliczeń wychodzi mi:

1) k=2*1+1=3
2) k=2*3+1=7
3) k=2*7+1=15
4) k=2*15+1=31
5) k=2*31+1=63
===============
B1 - Autor: mogur
Kod:
A:    type dane=rekord
                    imie:string[12];
                    lat:string[2];
                    end;
           spis=array[1..n] of dane;
B:    var pracownik:spis
C:    var zn:char;
D:    type karty=array[1..10] of string[15];
     var naz:karty; i:byte;

Autor: zmoniasta
Kod:
type
    pracownik=rekord
    Imie:string[30];
    lata_pracy:integer;
end;

var
    zmienna1:pracownik;
    zmienna2:char;
    zminna3 = array[1..100] of string[10];

B2 - Autor: Greif
Analogicznie do A2
Cytat:
for k:=1 to 10 do
writeln(k);

Program:
Kod:
Program petla_for;
var k:integer;
begin
     for k:=1 to 10 do
     writeln(k);
readln;
end.

B3 - Autorzy: zmoniasta, mogur
Kod:
n 1    n=0          k=1+0=1
n 2    n=0+1=1      k=1+1=2
n 3    n=1+1=2      k=2+2=4
n 4    n=2+1=3      k=4+3=7

Program mogura:
Kod:
program gr3B3;
var k,n:integer;
begin
   n:=0;
   k:=1;
   repeat
      k:=k+n;
      n:=n+1;
   until n=4;
   writeln('W w wyniku działania tej instrukcji k=',k);
   readln
end.
Program wypisuje cyfrę 7.
B4 - Autor: zmoniasta, mogur
Kod:
  if d<0 then
      writeln(&#8216;brak rozwiązania&#8217;);
  else
      writeln(&#8216;istnieją pierwiaski&#8217;);
I program:
Kod:
program gr3B4;
var d:real;
begin
   writeln(' wpisz d: ');
   readln(d);
   if d<0 then writeln(' brak rozwiązania')
      else writeln(' istnieją pierwiastki');
   readln;
end.

B5 - Autor: mogur
Kod:
function row3B5 (x:real):real;
begin
   y:=x*x+1;        { lub y:=Sqr(x)+1 }
end;


Powered by phpBB modified by Przemo © 2003 phpBB Group