- •Часть 1
- •4 Требование к отчету Отчет о проделанной работе должен содержать:
- •5 Теоретические положения
- •5.1 Элементы языка
- •5.1.1 Алфавит языка
- •5.1.2 Идентификаторы
- •5.1.3. Константы
- •5.1.4 Выражения
- •5.3 Структура программы
- •5.3.1 Заголовок программы
- •5.3.2 Блок описаний
- •5.3.3 Раздел действий (операторов).
- •5.4 Комментарии
- •5.5 Оператор присваивания
- •5.6 Процедура ввода информации
- •5.7 Процедура вывода информации на печать
- •6 Методические рекомендации
- •7 Контрольные вопросы
- •Приложение а
- •Приложение б Сообщения об ошибках.
- •Библиография
- •Методические указания к лабораторной работе
- •4. Требование к отчету Отчет о проделанной работе должен содержать:
- •5 Теоретические положения
- •5.1 Логические выражения
- •5.2 Составной оператор
- •5.3 Оператор if
- •6 Методические рекомендации
- •7. Контрольные вопросы
- •Приложение
- •Библиография
- •1 Цель работы
- •3 Порядок выполнения работы
- •4 Требования к отчету
- •5 Общие положения
- •5.1 Алгоритмы циклической структуры
- •5.2 Оператор цикла с параметром
- •5.3 Цикл с предпроверкой условия
- •5.4 Цикл с постпроверкой условия
- •6 Методические указания к выполнению работы
- •7 Контрольные вопросы
- •1 Цель работы
- •2 Задачи работы
- •3 Порядок выполнения работы
- •4 Отчет о проделанной работе должен содержать
- •5 Теоретические положения
- •5.1 Общие сведения о массивах
- •5.2 Одномерные массивы
- •5.3 Примеры основных типов задач с использованием одномерных массивов
- •5.3.1 Нахождение суммы элементов массива
- •5.3.2 Нахождение наибольшего элемента в массиве
- •5.3.3 Нахождение количества элементов массива, удовлетворяющих некоторому условию
- •5.3.4 Сортировка массива по возрастанию
- •5.4 Двумерные массивы
- •5.5 Примеры задач с использованием двумерных массивов
- •5.5.1 Нахождение наибольшего элемента в заданной строке матрицы
- •5.5.2 Нахождение элементов массива, удовлетворяющих определенному условию
- •5.5.3 Нахождение сумм элементов строк матрицы
- •6 Методические рекомендации к выполнению работы
- •7 Контрольные вопросы
- •Библиография
- •Приложение а Варианты заданий на тему «Одномерные массивы»
- •Приложение в Варианты заданий на тему «Двумерные массивы»
- •Методические указания к лабораторной работе
- •Использование строковых переменных в среде программирования Pascal
- •4 Отчет о проделанной работе должен содержать
- •5 Теоретические положения
- •5.1 Описание переменных строкового типа
- •5.2 Процедуры и функции по работе со строками
- •5.3 Некоторые алгоритмы решения задач с использованием строковых переменных
- •6 Контрольные вопросы
- •Библиография
- •Приложение а Варианты заданий для выполнения
- •4 Требования к отчету
- •5 Основные положения
- •Результаты работы Pascal-программы
- •Система тестов
- •Система тестов
- •6 Задачи для самостоятельного решения
- •Библиография
- •Приложение а
- •Приложение б
- •Приложение в
- •6 Задачи для самостоятельного решения
- •Система тестов
- •6 Задачи для самостоятельного решения
- •Библиография
Система тестов
Номер теста |
Проверяемый случай |
Число студентов |
Фамилии |
Рост |
Результаты |
1 |
Есть кандидаты |
3 |
Кулов Чехин Уваров |
171 165 178 |
Кулов Уваров |
2 |
Нет кандидатов |
2 |
Ершов Иванов |
170 165 |
Нет кандидатов |
Псевдокод
алг Баскетбол (арг цел N, арг лит таб Фам[1:N], арг вещ
таб Рост[1:N], рез лит таб Канд [1:N] )
нач цел i, k
k:=0
нц для i от 1 до N | запись фамилий кандидатов в таблицу Канд
если Рост[i]>170
то k:=k+1; Канд [k] := Фам [i]
все
кц
если k=0
то вывод "В ГРУППЕ НЕТ КАНДИДАТОВ В КОМАНДУ."
иначе нц для i от 1 до k
вывод Канд [i]
кц
все
кон
Исполнение алгоритма
N теста |
i |
Рост[i] > 170 |
K |
Кандидаты в команду |
1 |
1 2 3 |
+ - + |
0 1 2 |
Кулов Уваров |
2 |
1 2 |
- - |
0 |
- |
TurboPascal
Program BascetBall;
Uses Crt;
Var
SurName : Array [1..30] of String; { фамилии студентов }
Height : Array [1..30] of Real; { рост студентов }
Cand : Array [1..30] of String; { фамилии кандидатов }
NPupil, i, K : Integer; { NPupil - число студентов,
K - количество зачисленных}
BEGIN ClrScr;
Write('В КОМАНДУ ЗАЧИСЛЯЮТСЯ студенты, ');
WriteLn('РОСТ КОТОРЫХ ПРЕВЫШАЕТ 170 СМ.'); WriteLn;
Write('Сколько всего студентов ? ');
ReadLn(NPupil);
WriteLn('Введите фамилии и рост студентов :');
For i := 1 to NPupil do
begin Write(i, '. Фамилия - '); ReadLn(SurName[i]);
Write(' Рост - '); ReadLn(Height[i]);
end; WriteLn;
K:=0; { Составление списка команды }
For i := 1 to NPupil do
If Height[i]>170 then
begin K:=K+1; Cand[K] := SurName[i] end;
If K=0 then WriteLn('В ГРУППЕ НЕТ КАНДИДАТОВ В КОМАНДУ.')
else
begin WriteLn('КАНДИДАТЫ В БАСКЕТБОЛЬНУЮ КОМАНДУ :');
For i := 1 to K do WriteLn( i, '. ' , Cand[i]);
end;
ReadLn
END.
Пример 4. Дан массив 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.
|
Блок-схема (фрагмент)
|
Пример 5 Заполнить матрицу порядка n по следующему образцу:
1 |
2 |
3 |
... |
n-2 |
n-1 |
n |
2 |
1 |
2 |
... |
n-3 |
n-2 |
n-1 |
3 |
2 |
1 |
... |
n-4 |
n-3 |
n-2 |
... |
... |
... |
... |
... |
... |
... |
n-1 |
n-2 |
n-3 |
... |
2 |
1 |
2 |
n |
n-1 |
n-2 |
... |
3 |
2 |
1 |
Program Massiv12;
Var I, J, K, N : Integer; A : Array [1..10, 1..10] Of Integer;
Begin
Write('Введите порядок матрицы: '); ReadLn(N);
For I := 1 To N Do
For J := I To N Do
Begin
A[I, J] := J - I + 1; A[J, I] := A[I, J];
End;
For I := 1 To N Do
Begin
WriteLn;
For J := 1 To N Do Write(A[I, J]:4);
End
End.
Задача 6. Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.
Program Obmen;
Var N, I, J, Max,Ind, Vsp : Integer;A : Array [1..15, 1..15] Of Integer;
Begin
WRITE('Введите количество элементов в массиве: '); READLN(N);
FOR I := 1 TO N DO
FOR J := 1 TO N DO
Begin
WRITE('A[', I, ',', J, '] '); READLN(A[I, J])
End;
FOR I := 1 TO N DO
Begin
Max := A[I, 1]; Ind := 1;
FOR J := 2 TO N DO
IF A[I, J] > Max THEN
Begin
Max := A[I, J]; Ind := J
End;
Vsp := A[I, I]; A[I, I] := A[I, Ind]; A[I, Ind] := Vsp
End;
FOR I := 1 TO N DO
Begin
WriteLn;
FOR J := 1 TO N Do Write(A[I, J] : 3);
End; WriteLn
End.