суббота, 11 февраля 2017 г.

1. Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ют­ся ко­ор­ди­на­ты точки на плос­ко­сти (x, y – дей­стви­тель­ные числа) и опре­де­ля­ет­ся при­над­леж­ность этой точки за­дан­ной за­кра­шен­ной об­ла­сти (вклю­чая гра­ни­цы). Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но.




Пас­кальБей­сик
var x,y: real;begin
readln(x,y);
if y>=x then
if y>=0 then
if y<=2-x*x then
write('при­над­ле­жит')
else
write('не при­над­ле­жит')
end.
INPUT x, yIF y>=x THEN
IF y>=0 THEN
IF y<=2-x*x THEN
PRINT "при­над­ле­жит"
ELSE
PRINT "не при­над­ле­жит"
ENDIF
ENDIF
ENDIF
END
СиАл­го­рит­ми­че­ский язык
void main(void){float x,y;
scanf("% f % f",&x,&y);
if (y>=x)
if (y>=0)
if (y<=2-x*x)
printf("при­над­ле­жит");
else
printf("не при­над­ле­жит");
}
алгнач
вещ x,y
ввод x,y
если y>=x то
если y>=0 то
если y<=2-x*x то
вывод 'при­над­ле­жит'
иначе
вывод 'не при­над­ле­жит'
все
все
все
кон


По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее.
1. Пе­ре­ри­суй­те и за­пол­ни­те таб­ли­цу, ко­то­рая по­ка­зы­ва­ет, как ра­бо­та­ет про­грам­ма при ар­гу­мен­тах, при­над­ле­жа­щих раз­лич­ным об­ла­стям (A, B, C, D, E, F, G и H).
Точки, ле­жа­щие на гра­ни­цах об­ла­стей, от­дель­но не рас­смат­ри­вать. В столб­цах усло­вий ука­жи­те "да", если усло­вие вы­пол­нит­ся, "нет", если усло­вие не вы­пол­нит­ся, "—" (про­черк), если усло­вие не будет про­ве­рять­ся, "не изв.", если про­грам­ма ведет себя по-раз­но­му для раз­ных зна­че­ний, при­над­ле­жа­щих дан­ной об­ла­сти. В столб­це "Про­грам­ма вы­ве­дет" ука­жи­те, что про­грам­ма вы­ве­дет на экран. Если про­грам­ма ни­че­го не вы­во­дит, на­пи­ши­те "—" (про­черк). Если для раз­ных зна­че­ний, при­над­ле­жа­щих об­ла­сти, будут вы­ве­де­ны раз­ные тек­сты, на­пи­ши­те "не изв". В по­след­нем столб­це ука­жи­те "да" или "нет".
2. Ука­жи­те, как нужно до­ра­бо­тать про­грам­му, чтобы не было слу­ча­ев ее не­пра­виль­ной ра­бо­ты. (Это можно сде­лать не­сколь­ки­ми спо­со­ба­ми, до­ста­точ­но ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной про­грам­мы.)


Об­ластьУсло­вие 1 (y>=x)Усло­вие 2 (y>=0)Усло­вие 3 (y<=2–x*x)Про­грам­ма вы­ве­детОб­ласть об­ра­ба­ты­ва­ет­сяверно
A
В
С
D
Е
F
G
Н
2. Тре­бо­ва­лось на­пи­сать про­грам­му, ко­то­рая ре­ша­ет не­ра­вен­ство «(x - а) / (bx) > 0» от­но­си­тель­но x для любых не­ну­ле­вых чисел а и b , вве­ден­ных с кла­ви­а­ту­ры. Все числа счи­та­ют­ся дей­стви­тель­ны­ми. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но.

Пас­кальБей­сикСи
var a,b,x: real;begin
readln(a,b,x);
if b>0 then
write ('x > ',a,' или x < 0')
else
if a > 0 then
write ('0 < x <', a)
else
write (a, '< x < 0 ');
end.
INPUT a, b, x
IF b > 0 THEN
PRINT "x > ",a," или x<0"
ELSE
IF a > 0 THEN
PRINT "0 < x < ",a
ELSE
PRINT a," < x < 0"
ENDIF
ENDIF
END
void main(void){ float a,b,x;
scanf("%f%f%f", &a,&b,&x);
if (b > 0)
printf("x > %f или x < 0 ", a);
else
if (a>0)
printf("0 < x < %f",a);
else
printf("%f < x < 0",a);
}
По­сле­до­ва­тель­но вы­пол­ни­те три за­да­ния:
1) При­ве­ди­те при­мер таких чисел а, b, х, при ко­то­рых про­грам­ма не­вер­но ре­ша­ет по­став­лен­ную за­да­чу.
2) Ука­жи­те, какая часть про­грам­мы яв­ля­ет­ся лиш­ней.
3) Ука­жи­те, как нужно до­ра­бо­тать про­грам­му, чтобы не было слу­ча­ев ее не­пра­виль­ной ра­бо­ты. (Это можно сде­лать не­сколь­ки­ми спо­со­ба­ми, по­это­му можно ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной про­грам­мы).

3. Дано целое не­от­ри­ца­тель­ное число N. Не­об­хо­ди­мо вы­ве­сти два не­от­ри­ца­тель­ных целых числа, ко­то­рые при воз­ве­де­нии к квад­рат дадут ре­зуль­та­ты, наи­бо­лее близ­кие к N. На­при­мер, для N = 2016 нужно вы­ве­сти числа 44 и 45 (442 = 1936, 452 = 2025), а для N = 9 нужно вы­ве­сти числа 2 и 3. Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал про­грам­му, но, к со­жа­ле­нию, его про­грам­ма — не­пра­виль­ная.
Ниже эта про­грам­ма для Ва­ше­го удоб­ства при­ве­де­на на пяти язы­ках про­грам­ми­ро­ва­ния.




Бей­сикPython
DIM N, K AS INTEGER
INPUT N
K = 1
WHILE K*K <= N
  K = K + 1
WEND
PRINT (K-1)*(K-1), K*K
END
n = int(input())
k = 1
while k*k <= n:
    k = k + 1
print((k-1)*(k-1),k*k)
Ал­го­рит­ми­че­ский языкПас­каль
алг
нач
  цел n, k
  ввод n
  k := 1
  нц пока k*k <= n
    k := k + 1
  кц
  вывод (k-1)*(k-1), " ", k*k
кон
var n, k: integer;
begin
  read(n);
  k := 1;
  while k*k <= n do
    k := k + 1;
  writeln((k-1)*(k-1)," ",k*k)
end.
Си
#include <stdio.h>>
    int main(){
    int n, k;
    scanf("%d", &n);
    k = 1;
    while (k*k <= n)
        k = k + 1;
    printf("%d %d", (k-1)*(k-1), k*k);
    return 0;
}


По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее.

1. На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе N = 2016.
2. На­зо­ви­те зна­че­ние N, при вводе ко­то­ро­го про­грам­ма вы­ве­дет вер­ный ответ. Ука­жи­те этот ответ.
3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или не­сколь­ко). Для каж­дой ошиб­ки вы­пи­ши­те стро­ку, в ко­то­рой она до­пу­ще­на, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде. До­ста­точ­но ука­зать ошиб­ки и спо­соб их ис­прав­ле­ния для од­но­го языка про­грам­ми­ро­ва­ния.

Об­ра­ти­те вни­ма­ние: Вам нужно ис­пра­вить при­ведённую про­грам­му, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные стро­ки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные стро­ки: за ис­прав­ле­ния, внесённые в стро­ки, не со­дер­жа­щие оши­бок, баллы будут сни­жать­ся.
4. Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ют­ся ко­ор­ди­на­ты точки на плос­ко­сти (x, y – дей­стви­тель­ные числа) и опре­де­ля­ет­ся при­над­леж­ность этой точки за­дан­ной за­кра­шен­ной об­ла­сти (вклю­чая гра­ни­цы). Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но.





Пас­кальБей­сик
var x,y: real;begin
if y<=2+x then
if y>=0 then
if y>=x*x then
write('при­над­ле­жит')
else
write('не при­над­ле­жит')
end.
INPUT x, yIF y<=2+x THEN
IF y>=0 THEN
IF y>=x*x THEN
PRINT "при­над­ле­жит"
ELSE
PRINT "не при­над­ле­жит"
ENDIF
ENDIF
ENDIF
END
СиАл­го­рит­ми­че­ский язык
void main(void){float x, y;
scanf("%f%f", &x, &y);
if (y<=2+x)
if (y>=0)
if (y>=x*x)
printf("при­над­ле­жит");
else
printf("не при­над­ле­жит");
}
нач
вещ x,y
ввод x,y
если y<=2+x то
если y>=0 то
если y>=x*x то
вывод 'при­над­ле­жит'
иначе
вывод 'не при­над­ле­жит'
все
все
все
кон

По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее.
1. Пе­ре­ри­суй­те и за­пол­ни­те таб­ли­цу, ко­то­рая по­ка­зы­ва­ет, как ра­бо­та­ет про­грам­ма при ар­гу­мен­тах, при­над­ле­жа­щих раз­лич­ным об­ла­стям (A, B, C, D, E, F, G и H).
Точки, ле­жа­щие на гра­ни­цах об­ла­стей, от­дель­но не рас­смат­ри­вать. В столб­цах усло­вий ука­жи­те "да", если усло­вие вы­пол­нит­ся, "нет", если усло­вие не вы­пол­нит­ся, "—" (про­черк), если усло­вие не будет про­ве­рять­ся, "не изв.", если про­грам­ма ведет себя по-раз­но­му для раз­ных зна­че­ний, при­над­ле­жа­щих дан­ной об­ла­сти. В столб­це "Про­грам­ма вы­ве­дет" ука­жи­те, что про­грам­ма вы­ве­дет на экран. Если про­грам­ма ни­че­го не вы­во­дит, на­пи­ши­те "—" (про­черк). Если для раз­ных зна­че­ний, при­над­ле­жа­щих об­ла­сти, будут вы­ве­де­ны раз­ные тек­сты, на­пи­ши­те "не изв". В по­след­нем столб­це ука­жи­те "да" или "нет".

2. Ука­жи­те, как нужно до­ра­бо­тать про­грам­му, чтобы не было слу­ча­ев ее не­пра­виль­ной ра­бо­ты. (Это можно сде­лать не­сколь­ки­ми спо­со­ба­ми, до­ста­точ­но ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной про­грам­мы.)


Об­ластьУсло­вие 1 (y<=2+x)Усло­вие 2 (y>=0)Усло­вие 3 (y>=x*x)Про­грам­ма вы­ве­детОб­ласть об­ра­ба­ты­ва­ет­сяверно
A
В
С
D
Е
F
G
Н
5. Тре­бо­ва­лось на­пи­сать про­грам­му, ко­то­рая вво­дит с кла­ви­а­ту­ры ко­ор­ди­на­ты точки на плос­ко­сти (х, у — дей­стви­тель­ные числа) и опре­де­ля­ет при­над­леж­ность точки за­штри­хо­ван­ной об­ла­сти. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но.





Пас­кальБей­сик

var х, у: real;
begin
readln(x, у);
if у <= sin(x) then
if у >= 1 − x then
if у >= 0 then
write('при­над­ле­жит')
else
write('не при­над­ле­жит')
end.
INPUT x, уIF у <= SIN(x) THEN
IF у >= 1 − x THEN
IF у >= 0 THEN
PRINT "при­над­ле­жит"
ELSE
PRINT "не при­над­ле­жит"
ENDIF
ENDIF
ENDIF
END
СиАл­го­рит­ми­че­ский язык
void main(void){
float x, у;
scanf("%f%f", &x, &y);
if (y <= sin(x))
if (у >= 1 − x)
if (y >= 0)
printf("при­над­ле­жит");
else
printf("не при­над­ле­жит");
}
алгнач
вещ х, у
ввод X, у
если у <= sin (х) то
если у >= 1 − х то
если у >= 0 то
вывод ' при­над­ле­жит '
иначе
вывод 'не при­над­ле­жит'
все
все
все
кон

По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее:
1. Пе­ре­ри­суй­те и за­пол­ни­те таб­ли­цу, ко­то­рая по­ка­зы­ва­ет, как ра­бо­та­ет про­грам­ма при ар­гу­мен­тах, при­над­ле­жа­щих раз­лич­ным об­ла­стям (A, B, C, D, E, F, G и H).
Точки, ле­жа­щие на гра­ни­цах об­ла­стей, от­дель­но не рас­смат­ри­вать. В столб­цах усло­вий ука­жи­те "да", если усло­вие вы­пол­нит­ся, "нет", если усло­вие не вы­пол­нит­ся, "—" (про­черк), если усло­вие не будет про­ве­рять­ся, "не изв.", если про­грам­ма ведет себя по-раз­но­му для раз­ных зна­че­ний, при­над­ле­жа­щих дан­ной об­ла­сти. В столб­це "Про­грам­ма вы­ве­дет" ука­жи­те, что про­грам­ма вы­ве­дет на экран. Если про­грам­ма ни­че­го не вы­во­дит, на­пи­ши­те "—" (про­черк). Если для раз­ных зна­че­ний, при­над­ле­жа­щих об­ла­сти, будут вы­ве­де­ны раз­ные тек­сты, на­пи­ши­те "не изв". В по­след­нем столб­це ука­жи­те "да" или "нет".

2. Ука­жи­те, как нужно до­ра­бо­тать про­грам­му, чтобы не было слу­ча­ев ее не­пра­виль­ной ра­бо­ты. (Это можно сде­лать не­сколь­ки­ми спо­со­ба­ми, до­ста­точ­но ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной про­грам­мы.)


Об­ластьУсло­вие 1
(у <= sin(x))
Усло­вие 2
(у >= 1 − x)
Усло­вие 3
(у >= 0)
Про­грам­ма вы­ве­детОб­ласть об­ра­ба­ты­ва­ет­сяверно
A
В
С
D
Е
F
G
Н
6.
Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ют­ся ко­ор­ди­на­ты точки на плос­ко­сти (х, у — дей­стви­тель­ные числа) и опре­де­ля­ет­ся при­над­леж­ность этой точки за­дан­ной за­кра­шен­ной об­ла­сти (вклю­чая гра­ни­цы).




Пас­кальБей­сик
var x, у: real;
begin
readln(x,y);
if x*x + y*y <= 25 then
if y <= 4 - x*x then
if y <= x+1 then
write('при­над­ле­жит')
else
write('не при­над­ле­жит')
end.
INPUT х, у
IF x*x + у*у <= 25 THEN
IF y <= 4 - x*x THEN
IF y <= x + 1 THEN
PRINT "при­над­ле­жит"
ELSE
PRINT "не при­над­ле­жит"
ENDIF
END IF
END IF
END
СиАл­го­рит­ми­че­ский язык

#include <stdio.h>
void main (void) {
float x,y;
scanf <"% f % f", &x, &y) ;
if (x*x + y*y <= 25)
if (y <= 4 - x * x)
if (y <= x + 1)
printf ("при­над­ле­жит");
else
printf("не при­над­ле­жит");
}
алг
нач
вещ х,у
ввод х,у
если х * х + у * у <= 25 то
если y <= 4 - x * x то
если y <= x + 1 то
вывод 'при­над­ле­жит'
иначе
вывод 'не при­над­ле­жит'
все
все
все
кон

При про­вер­ке ра­бо­ты про­грам­ма вы­пол­ня­лась по шагам для не­ко­то­рых кон­троль­ных зна­че­ний x и y. при этом был за­пол­нен про­то­кол те­сти­ро­ва­ния, со­дер­жа­щий сле­ду­ю­щую ин­фор­ма­цию.

Об­ласть — часть плос­ко­сти, ко­то­рой при­над­ле­жит про­ве­ря­е­мая точка (все воз­мож­ные об­ла­сти от­ме­че­ны на ри­сун­ке бук­ва­ми A, B, C, ... W).

Усло­вие 1, Усло­вие 2, Усло­вие 3 — ре­зуль­тат про­вер­ки со­от­вет­ству­ю­ще­го усло­вия (да или нет). Если усло­вие не про­ве­ря­лось, в про­то­кол за­пи­сы­вал­ся про­черк.

Вывод — со­об­ще­ние, ко­то­рое вы­ве­ла про­грам­ма. Если про­грам­ма ни­че­го не вы­ве­ла, в про­то­кол за­пи­сы­вал­ся про­черк.

Верно — ито­го­вое за­клю­че­ние (да или нет) о пра­виль­но­сти ре­зуль­та­та ра­бо­ты про­грам­мы при дан­ных зна­че­ни­ях x и y.
В ре­зуль­та­те не­ак­ку­рат­но­го об­ра­ще­ния про­то­кол был ис­пор­чен, ча­стич­но со­хра­ни­лось толь­ко три стро­ки:






Об­ластьУсло­вие 1
(х*х+у*у <= 25)
Усло­вие 2 (y <= 4 - x * x)Усло­вие 3 (y <= x + 1)ВыводВерно
да
при­над­ле­житнет
нетнет


По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее.
1. Вос­ста­но­ви­те уце­лев­шие стро­ки про­то­ко­ла, за­пол­нив все клет­ки таб­ли­цы. Там, где со­дер­жа­ние вос­ста­нав­ли­ва­ет­ся не­од­но­знач­но, за­пи­ши­те любое воз­мож­ное зна­че­ние. На­при­мер, если для не­сколь­ких об­ла­стей по­лу­ча­ет­ся оди­на­ко­вая стро­ка таб­ли­цы, ука­жи­те в графе «Об­ласть» любую из этих об­ла­стей.
2. Ука­жи­те, как нужно до­ра­бо­тать про­грам­му, чтобы не было слу­ча­ев её не­пра­виль­ной ра­бо­ты (это можно сде­лать не­сколь­ки­ми спо­со­ба­ми, до­ста­точ­но ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной про­грам­мы).

7.




Об­ластьУсло­вие 1
(y >= x*x-2)
Усло­вие 2
(y <= 4-x*x)
Усло­вие 3
(x >= 0)
Про­грам­ма вы­ве­детОб­ласть об­ра­ба­ты­ва­ет­ся верно
A
B
C
D
E
F
G
H
8. Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ют­ся ко­ор­ди­на­ты точки на плос­ко­сти (х, у — дей­стви­тель­ные числа) и опре­де­ля­ет­ся при­над­леж­ность этой точки за­дан­ной за­кра­шен­ной об­ла­сти (вклю­чая гра­ни­цы). Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но.


















Бей­сикПас­каль
INPUT х, у
IF x*x + у*у <= 49 THEN
IF x*x + у*у >= 16 THEN
PRINT "при­над­ле­жит"
ELSE
PRINT "не при­над­ле­жит"
ENDIF
END IF
END
var x, у: real;
begin
readln(x,y);
if x*x + y*y <= 49 then
if x*x + y*y >= 16 then
write{'при­над­ле­жит')
else
write{'не при­над­ле­жит')
end.
СиАл­го­рит­ми­че­ский
#include <stdio.h>
void main (void) {
float x,y;
scanf <"% f % f", &x, &y) ;
if (x*x + y*y <= 49)
if (x*x + y*y >= 16)
printf ("при­над­ле­жит");
else
printf("не при­над­ле­жит");
}
алг
нач
вещ х,у
ввод х,у
если х*х + у*у <= 49 то
если х*х + у* у >= 16 то
вывод 'при­над­ле­жит'
иначе
вывод 'не при­над­ле­жит'
все
все
кон


По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее.
1. Пе­ре­ри­суй­те и за­пол­ни­те таб­ли­цу, ко­то­рая по­ка­зы­ва­ет, как ра­бо­та­ет про­грам­ма при ар­гу­мен­тах, при­над­ле­жа­щих раз­лич­ным об­ла­стям (A, B, C, D). Точки, ле­жа­щие на гра­ни­цах об­ла­стей, от­дель­но не рас­смат­ри­вать. В столб­цах усло­вий ука­жи­те "да", если усло­вие вы­пол­нит­ся, "нет", если усло­вие не вы­пол­нит­ся, "—" (про­черк), если усло­вие не будет про­ве­рять­ся, "не изв.", если про­грам­ма ведет себя по-раз­но­му для раз­ных зна­че­ний, при­над­ле­жа­щих дан­ной об­ла­сти. В столб­це "Про­грам­ма вы­ве­дет" ука­жи­те, что про­грам­ма вы­ве­дет на экран. Если про­грам­ма ни­че­го не вы­во­дит, на­пи­ши­те "—" (про­черк). Если для раз­ных зна­че­ний, при­над­ле­жа­щих об­ла­сти, будут вы­ве­де­ны раз­ные тек­сты, на­пи­ши­те "не изв". В по­след­нем столб­це ука­жи­те "да" или "нет".
2. Ука­жи­те, как нужно до­ра­бо­тать про­грам­му, чтобы не было слу­ча­ев ее не­пра­виль­ной ра­бо­ты. (Это можно сде­лать не­сколь­ки­ми спо­со­ба­ми, до­ста­точ­но ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной про­грам­мы.)





















Об­ластьУсло­вие 1
(х*х+у*у <= 49)
Усло­вие 2
(х*х+у*у >= 16)
Про­грам­ма вы­ве­детОб­ластьоб­ра­ба­ты­ва­ет­ся верно
A
В
С
D

9. Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ет­ся ко­ор­ди­на­та точки на пря­мой (х - дей­стви­тель­ное число) и опре­де­ля­ет­ся при­над­леж­ность этой точки од­но­му из вы­де­лен­ных от­рез­ков (вклю­чая гра­ни­цы). Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но.



Бэй­сикПас­каль
INPUT х
IF х>=-5 OR х<=1 THEN
IF х>=-3 AND x<=3 THEN
IF x>=-l AND x<=5 THEN
PRINT "при­над­ле­жит"
ELSE
PRINT "не при­над­ле­жит"
END IF
END IF
END IF
END
var х: real;
begin
readln(х);
if (x>=-5) or (x<=1) then
if (x>=-3) and (x<=3) then
if (x>=-l) and (x<=5) then write('при­над­ле­жит')
else
write('не при­над­ле­жит')
end.
СиАл­го­рит­ми­че­ский язык

#include <stdio.h>
void main(){
float x;
scanf("% f",&x);
if (x>=-5 || x<=l)
if (x>=-3 && x<=3)
if (x>=-l && x<=5)
printf("при­над­ле­жит");
else
printf("не при­над­ле­жит");
}
алг
нач
вещ х
ввод X
если х>=-5 или х<=1 то
если х>=-3 и х<=3 то
если х>=-1 и х<=5 то
вывод 'при­над­ле­жит'
иначе
вывод 'не при­над­ле­жит'
все
все
все
кон




Об­ластьУсло­вие 1
(x >= -5 или x <= 1)
Усло­вие 2
(x >= -3 и x <= 3)
Усло­вие 3
(x >= -1 и x <= 5)
Про­грам­ма
вы­ве­дет
Об­ласть
об­ра­ба­ты­ва­ет­ся
верно
A
B
C
D
E
F
G
10. Тре­бо­ва­лось на­пи­сать про­грам­му, при вы­пол­не­нии ко­то­рой с кла­ви­а­ту­ры счи­ты­ва­ет­ся на­ту­раль­ное число N, не пре­вос­хо­дя­щее 109, и вы­во­дит­ся ми­ни­маль­ная цифра этого числа. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му не­пра­виль­но. (Ниже для Ва­ше­го удоб­ства про­грам­ма пред­став­ле­на на четырёх язы­ках про­грам­ми­ро­ва­ния.)



















Бей­сикПас­каль
DIM N AS LONG
INPUT N
min_digit = 9
WHILE N >= 10
digit = N MOD 10
IF digit < min_digit THEN
min_digit = digit
END IF
N = N \ 10
WEND
PRINT digit
END
var N: longint;
digit, min_digit: integer;
begin
readln(N);
min_digit := 9;
while N >= 10 do
begin
digit := N mod 10;
if digit < min_digit then
min_digit := digit;
N := N div 10;
end;
writeln(digit);
end.
СиАл­го­рит­ми­че­ский
#include<stdio.h>
int main()
{
long int N;
int digit, min_digit;
scanf("%ld", &N);
min_digit = 9;
while (N >= 10)
{
digit = N % 10;
if (digit < min_digit)
min_digit = digit;
N = N / 10;
}
printf("%d", digit);
}
алг
нач
цел N, digit, min_digit
ввод N
min_digit := 9
нц пока N >= 10
digit := mod(N, 10)
если digit < min_digit то
min_digit := digit
все
N := div(N, 10)
кц
вывод digit
кон

По­сле­до­ва­тель­но вы­пол­ни­те сле­ду­ю­щее.
1. На­пи­ши­те, что вы­ве­дет эта про­грам­ма при вводе числа 547.
2. Най­ди­те все ошиб­ки в этой про­грам­ме (их может быть одна или не­сколь­ко). Для каж­дой ошиб­ки:
1) вы­пи­ши­те стро­ку, в ко­то­рой сде­ла­на ошиб­ка;
2) ука­жи­те, как ис­пра­вить ошиб­ку, — при­ве­ди­те пра­виль­ный ва­ри­ант стро­ки.
Об­ра­ти­те вни­ма­ние, что тре­бу­ет­ся найти ошиб­ки в име­ю­щей­ся про­грам­ме, а не на­пи­сать свою, воз­мож­но, ис­поль­зу­ю­щую дру­гой ал­го­ритм ре­ше­ния. Ис­прав­ле­ние ошиб­ки долж­но за­тра­ги­вать толь­ко стро­ку, в ко­то­рой на­хо­дит­ся ошиб­ка.

Комментариев нет:

Отправить комментарий