Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика алгоритмизации и программирования.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
517.53 Кб
Скачать

Input "Сколько всего учеников ? " , nPupil

DIM SurName$(NPupil), Height(NPupil), Cand$(NPupil)

PRINT "Введите фамилии и рост учеников :"

FOR i = 1 TO NPupil

  INPUT "Фамилия - " , SurName$(i)

Input "Рост - " , Height(I)

NEXT i : PRINT

K = 0

FOR i = 1 TO NPupil

  IF Height(i) > 170 THEN K = K + 1 : Cand$(K) = SurName$(i)

NEXT i

IF K = 0 THEN

  PRINT "В КЛАССЕ НЕТ КАНДИДАТОВ В КОМАНДУ."

  ELSE

  PRINT "КАНДИДАТЫ В БАСКЕТБОЛЬНУЮ КОМАНДУ :"

  FOR i = 1 TO K

  PRINT i ; ". " ; Cand$(i)

  NEXT i

END IF

END

 

Пример 2.4. Для заданного X вычислить

 

Здесь n! = 1. 2. 3 .... n (читается как "n-факториал").

 

Тест

 

Данные

Результат

X=1

n=3

 

Демонстрация

Начало формы

Конец формы

Школьный АЯ

алг Сумма Ряда (арг вещ х, арг цел n, рез вещ S)

нач цел i, вещ P | P - очередное слагаемое

  S := 1; P := 1

  нц для i от 1 до n

  P := - P*x /i   | получение очередного слагаемого

  S := S + P

  кц

кон

Turbo Pascal 

Program SumUp;

  Uses Crt;

  Var x, S, P : Real; 

  {P - очередное слагаемое}

  i, n : Integer;

BEGIN ClrScr;

  Write('Введите n = ');  ReadLn(n);

  Write('Введите x = ');  ReadLn(x); WriteLn;

  S := 1; P := 1;

  For i := 1 to n do

  begin

  P := - P*x /i; {получение очередного слагаемого}

  S := S + P

  end;

  WriteLn('О т в е т : S = ', S : 7 : 3 ); ReadLn

END. 

Блок-схема 

 

QBasic 

CLS

INPUT "Введите n = ", n

INPUT "Введите x = ", x

S = 1 : P = 1

FOR i = 1 TO n

  P = -P * x / i

  S = S + P

NEXT i

PRINT : PRINT "О т в е т : S = " ; S

END 

  Результат работы    QBasic-программы    

Введите n = 3   <Enter>    Введите x = 1   <Enter>  

Ответ:  S =  .3333333

 

Пример 2.5. Дан массив X(n). Получить новый массив y(n) такой, что в нем сначала идут положительные числа, затем нулевые, и затем отрицательные из X. Тест

 

 

Данные

Результат

N=7 

X=(-1, 2, 0, 4, -3,-2,0) 

Y=(2, 4, 0, 0, -1, -3, -2)

 

Демонстрация

Начало формы

Конец формы

Школьный АЯ

алг Новый Порядок (арг цел N, арг вещ таб Х[1:N], рез вещ таб Y[1:N])

нач цел i, k | k - индекс массива Y

  k := 0

  нц для i от 1 до N | Занесение в Y положительных чисел из X

    если X[i] > 0

       то k := k+1; Y[k] := X[i]

  все

  кц

  нц для i от 1 до N | Занесение в Y чисел, равных нулю, из X

  если X[i] = 0

  то k := k+1; Y[k] := X[i]

  все

  кц

  нц для i от 1 до N | Занесение в Y отрицательных чисел из X

  если X[i] < 0

  то k := k+1; Y[k] := X[i]

  все

  кц

кон

Turbo Pascal 

Program NewOrder;

  Uses Crt;

  Var N, i, k : Integer;

  X, Y   : Array [1..20] of Real;

BEGIN

  ClrScr;

  Write('Введите N = '); ReadLn(N);

  For i := 1 to N do

  begin

  Write('X[ ', i, ' ] = '); ReadLn(X[i])

  end;

  k:=0;

  For i := 1 to N do

  If X[i]>0 then

  begin k:=k+1; Y[k]:=X[i]

  end;

  For i := 1 to N do

  If X[i]=0 then

  begin k:=k+1; Y[k]:=X[i]

  end;

  For i := 1 to N do

  If X[i]<0 then

  begin k:=k+1; Y[k]:=X[i]

  end;

  Write('О т в е т : полученный массив');

  For i := 1 to N do Write(Y[i] : 5 : 1);

  WriteLn; ReadLn

END.

Блок-схема

(фрагмент)

QBasic

CLS : INPUT "N = "; N : DIM X(N), Y(N)

FOR i = 1 TO N

  PRINT "X("; i; ") = "; : INPUT X(i)

NEXT i

k = 0

FOR i = 1 TO N

  IF X(i) > 0 THEN k = k + 1 : Y(k) = X(i)

NEXT i

FOR i = 1 TO N

  IF X(i) = 0 THEN k = k + 1 : Y(k) = X(i)

NEXT i

FOR i = 1 TO N

  IF X(i) < 0 THEN k = k + 1 : Y(k) = X(i)

NEXT i

PRINT "О т в е т : полученный массив" ;

FOR k = 1 TO N

  PRINT Y(k) ;

NEXT k : PRINT

END