Структура оператора цикла с параметром
Цикл по возрастающим значениям параметра имеет вид:
FOR I:= N1 TO N2 DO
Тело цикла;
следующий оператор;
Количество повторений зависит от параметра цикла I.
При первом вхождении в цикл, параметр цикла I принимает значение равное величине нижней границы N1 и выполняется оператор или операторы, записанные после служебного слова DO. Затем значение параметра увеличивается на 1 и вновь выполняется тело цикла. Подобные действия будут повторяться до тех пор, пока значение параметра цикла не станет больше величины N2, после чего осуществляется выход из цикла
Если тело цикла не содержит операторов, то цикл называется пустым.
Цикл по убывающим значениям параметра имеет вид:
FOR I:= N2 DOWNTO N1 DO
Тело цикла;
следующий оператор;
При первом вхождении в цикл, параметр цикла I принимает значение равное величине нижней границы N2 и выполняется оператор или операторы, записанные после служебного слова DO. Затем значение параметра уменьшается на 1 и вновь выполняется тело цикла. Подобные действия будут повторяться до тех пор, пока значение параметра цикла не станет меньше величины N1, после чего осуществляется выход из цикла
Пример выполнения работы:
Условие: Вывести все целые числа от 20 до 50 Var I: integer; Begin For I:=20 To 50 Do Writeln(I); End. | Условие: Вычислить сумму 20+18+16+14+…+2 Var S,I: integer; Begin S:=0; For I:=20 DownTo 2 Do Begin S:=S+I; I:=I-1; End; Writeln(S); End. |
Контрольные вопросы
· Когда используется цикл с параметром (со счетчиком)?
· Как работает оператор цикл с параметром?
· В чем разница между двумя способами записи оператора FOR?
· Как изменить шаг цикла?
· Сколько операторов включает тело цикла?
Варианты к лабораторной работе №5
(ваш номер по журналу соответствует номеру варианта)
№ | Задание 1 Задание 2 |
Ввести целое числоN.Найти сумму первых N чётных натуральных чисел. | |
Вычислить 2/3+2/5+2/7+…+2/19 | |
Ввести целое числоN. Вывести таблицу умножения для N от 1 до 10. | |
Определить сумму квадратов всех целых чисел в интервале, заданном значениями M и N. | |
Последовательно вводятся 10 целых чисел. Определить каких среди них больше: положительных или отрицательных. | |
Вычислить 2/3+3/4+4/5+…+19/20 | |
Последовательно вводятся 10 целых чисел. Найти произведение тех, которые кратны удовлетворительно. | |
Вычислить 2n+4n+6n+…+10n | |
Последовательно вводятся 10 целых чисел. Сосчитать сколько из них совпадают с первым числом. | |
Ввести 12 чисел. Определить сколько чисел кратно 5. | |
Последовательно вводятся 10 целых чисел. Найти разницу между наибольшим и наименьшим из них | |
Составить программу, запрашивающую пароль пользователя. В случае правильности пароля выводится фраза: “ Можно приступать к работе». если пароль 3 раза введен неверно, то вывести «Вызываю охрану» | |
Последовательно вводятся 10 целых чисел. Найти среднее арифметическое этих чисел | |
Вычислить 1/3+1/6+1/9+…+1/30 | |
Ввести М. Вычислить М! | |
Вывести квадраты целых чисел, кратных 3 в диапазоне от 3 до 21 | |
Определить сумму квадратов всех целых чисел в интервале, заданном значениями M и N. | |
Вычислить 1/2 *1/5 * 1/8 *…*1/20 | |
Вывести значения градусов по шкале Цельсия (С) и соответствующие им градусы по Фаренгейту (F) для значений от 1 до 15 градусов (С) с шагом 1 градус. Перевод осуществляется по формуле F = C * 1,8 + 32. | |
Вычислить (2 + 1 /2) ( 3 + 1 / 3 ) ( 4 + 1 / 4 ) ( 5 + 1 / 5 )…(10 + 1/10) | |
Вычислить сумму нечётных чисел от 1 до 99. | |
Вычислить ( cos 2 + 2 ) ( cos 4 + 4 ) ( cos 6 + 6)…( cos 20+20 ) | |
Вывести чётные числа от 1 до 20. | |
Ввести целое число N. Найти сумму первых N чётных натуральных чисел. | |
Найти сумму квадратов целых чисел от 1 до 100. | |
Вычислить 0,1 x + 0,3 x + 0,5 x +…+ 2,1 x | |
Вычислить сумму конечного ряда: для N=30 | |
Последовательно вводятся 10 целых чисел. Найти произведение тех, которые кратны 5. | |
Вычислить сумму конечного ряда: | |
Вывести числа в интервале от 10 до 100, кратные 3. | |
Ввести число. Найти, произведение целых чисел от 1 до введённого пользователем числа. | |
Вычислить сумму нечётных чисел от 1 до 99. | |
Ввести Х. Вычислить функцию sin(x)/x на интервале [1;12] c шагом 2 | |
Вычислить значение функции Y=SINX-COSX на интервале от A до B с шагом H. | |
Ввести 8 чисел. Определить количество значений, превосходящих число 100. | |
Вычислить 10/3+9/3+8/3+…+1/3 | |
Ввести 5 чисел. Вывести «да», если хотя бы одно число = 0. | |
Вычислить сумму чётных чисел на отрезке от 10 до 30. | |
Ввести N целых чисел. Найти количество чисел равных 10. | |
Ввести 20 чисел. Найти количество положительных и отрицательных | |
Ввести с клавиатуры 8 чисел. Определить среднее арифметическое положительных значений. | |
Вычислить (1+sin x)(2+sin 2x)(3+sin 3x)…(10+sin 10x) | |
Вычислить значения функции y=sin (3X + p/5) для X, изменяющегося от 2 до 15 с шагом 3. | |
Последовательно вводятся 10 целых чисел. Найти среднее арифметическое этих чисел | |
Вычислить значения функции y=An/n для n, изменяющегося от 1 до 15, с шагом 1, A=2. | |
Ввести 15 чисел. Определить количество чисел, которые меньше заданного числа N. | |
Вывести на экран таблицу значений SINX для аргумента, меняющегося от 0 до 30 с шагом 3 | |
Вычислить 2/4+3/6+4/8+…+10/20 | |
Вычислить значение Y=SIN X+COS X на интервале от A до B с шагом H | |
Вычислить 3/2+4/3+5/4+…+10/9 | |
Ввести 12 чисел. Определить сколько чисел кратно 5. | |
Вычислить 0,2 x + 0,4 x + 0,6 x +…+ 2,2 x | |
Вычислить сумму чётных чисел на отрезке от 10 до 30. | |
Ввести 15 чисел. Определить количество чисел, которые больше заданного числа N. | |
Найти сумму нечётных чисел в диапазоне от 1 до 99 включительно. | |
Вычислить сумму конечного ряда: | |
Вычислить значение Y=SINX-COSX на интервале от A до B с шагом H. | |
Вычислить сумму нечётных чисел от 1 до 99. | |
Вводится последовательность из N целых чисел. Найти, сколько в ней чисел равных 10. | |
Ввести 8 чисел. Определить количество значений, превосходящих число 100. | |
Ввести 15 чисел. Определить количество чисел, которые меньше заданного числа N. | |
Вычислить (1+sin x_)(3+sin 3x) (5+sin 5x) …(11+sin 11x) |
ЛАБОРАТОРНАЯ РАБОТА № 5а
Тема:Использование операторов цикла в программе на TurboPascal 7.0
Цель работы:Изучение возможностей использования оператора, реализующего цикл по условию. Овладение практическими навыками использования операторов Repeat…Until,While ..Do
Пояснения к работе
Структура оператора цикла с предусловием
While<логическое выражение> Do
Begin
P1;
P2;
Pn;
End;
Следующий оператор;
Оператор цикла While работает по следующему алгоритму: если логическое выражение после служебного слова While имеет значение True, то выполняются операторы P1, P2, PN записанные после слова Do, после чего проверка логического выражения повторяется. Если логическое выражение имеет значение False, то происходит выход из цикла и выполняется Следующий оператор
Структура оператора цикла с постусловием
Repeat
P1;
P2
Pn;
Until <логическое выражение>;
Следующий оператор;
Цикл с оператором Repeat начинается с выполнения операторов внутри цикла, поэтому цикл, организованный с помощью оператора Repeat, в любом случае выполнится хотя бы один раз. Затем проверяется логическое выражение и если оно истинно, то осуществляется выход из цикла. Если же значение логического выражения ложно, то выполнение операторов P1, P2, PN повторяется, а затем вновь проверяется логическое выражение.
Пример выполнения работы:
Условие Вычислить сумму ряда. 1+1/1!+1/2!+1/3!+… Вычисления заканчивать при достижении заданной степени точности Е (т.е. очередной член ряда становится меньше введенной точности). Var S, E :Real; N, I : Integer; Begin S:=1; Readln(E); I:=1; F:=1; {I основание факториала, F факториал} While 1/F>E do Begin S:=S+1/F; I:=I+1; F:=F*I; End; Writeln(s); End. | Условие: Вычислить сумму целых чисел от 1 до 50, используя, оператор циклаRepeat Var k,sum:Integer; Begin k:=0; sum:=0; Repeat k:=k+1; sum:=sum+k; Until k=50; Writeln(' Сумма чисел от 1 до 50 = ', sum); End. |
Контрольные вопросы
· Когда используются операторы цикла по условию?
· Как работает оператор цикл с предусловием?
· Как работает оператор цикл с постусловием?
Варианты к лабораторной работе №5а
(ваш номер по журналу соответствует номеру варианта)
№ | Задание 1 Задание 2 Задание 3 Вычислить сумму ряда. Вычисления заканчивать при достижении заданной степени точности Е |
Найти минимальное число, больше 300,которое нацело делится на 19. | |
Последовательно вводятся числа, найти их сумму. Ввод остановить после ввода второго нуля. | |
1/10+2/100+3/1000+.. | |
Ввести число. Определить сумму цифр во второй половине числа Пример, N=123456, результат 15. | |
Ввести целое числоN.Найти сумму первых N чётных натуральных чисел | |
1+1/101+1/201+1/301+… | |
Ввести число. Получить другое число, путем удаления цифр 0 и 1, сохранив порядок следования оставшихся цифр. Пример, 201304, результат 234. | |
Последовательно вводятся числа, найти их произведение. Ввод остановить если произведение стало =0. | |
1+1/22+ 1/32+ 1/42+ 1/52+… | |
Ввести число N. Вывести число, получаемое выписыванием в обратном порядке цифр числа N. (например, 1234, результат 4321). | |
Последовательно вводятся числа, найти их произведение. Ввод остановить после ввода первого отрицательного значения. | |
1/(20*40)+2/(30*50)+3/(40*60)+.. | |
Ввести число. Вычислить сумму первой и последней цифры. | |
Вывести на экран чётные числа от 2 до 30. | |
1+2/2!+3/4!+4/6!+5/8!… | |
Ввести число n. Приписать по 1 в начало и в конец записи числа n (например, N=345, результат 13451). | |
Вводится последовательность ненулевых чисел, 0-конец последовательности. Определить, сколько раз последовательность меняет знак | |
x+x2/2!+ x3/3!+ x4/4!+ x5/5!+… | |
Ввести число. Определить является ли оно степенью 3 (число 27 является, а 21 нет). | |
Последовательно вводятся числа, найти их сумму. Ввод остановить после ввода первого нуля. | |
1/(2*4)+2/(3*5)+3/(4*6)+.. | |
Дано число N(N>9) определить количество нулей, идущих подряд в младших разрядах данного числа. Пример, N=127000,результат удовлетворительно. | |
Ввести число (>99). Найти среднее арифметическое всех цифр числа | |
1+1/10+1/100+1/1000+… | |
Ввести число. Получить другое число путем замены нулей на 9 | |
Ввести число n. Выяснить, входит ли цифра 3 в запись числа n | |
0,0012+0,0022/2!+ 0,0032/3!+ … | |
Определить, является ли последовательность цифр натурального числа при просмотре их справа налево возрастающей последовательностью. (например, 247 – да, 4628 – нет) | |
Ввести число n. Поменять порядок цифр числа n на обратный. | |
10+20/2!+30/4!+40/6!+50/8!… | |
Ввести число. Определить, сколько раз в нем встречается цифра 8. | |
Ввести число. Определить, сколько раз в нем встречается цифра 1. | |
x2+x2/2!+ x2/3!+ x2/4!+ x2/5!+… | |
Ввести число. Определить, сколько раз в нем встречается цифра 4. | |
Вычислить сумму нечётных чисел от 1 до 99. | |
1+1/45+1/90+1/135+… | |
Ввести число. определить сумму его цифр. | |
Определить сумму квадратов всех целых чисел в интервале, заданном значениями M и N. | |
1+1/2!+1/4!+1/6!+… | |
Ввести число. Найти наименьшую цифру в записи числа. | |
Ввести число n. Определить, входит ли в состав числа цифры 2 и 3 | |
1+1/3!+1/6!+1/9!+… | |
Ввести число. Поменять местами первую и последнюю цифры числа (например, дано 2345,результат 5342). | |
Вводится последовательность чисел, 0-конец последовательности. Определить, содержит ли последовательность хотя бы два равных соседних числа. | |
0,012+0,022/2!+ 0,032/3!+ … | |
Найти минимальное число, больше 200,которое нацело делится на 12. | |
Ввести число n. Переставить первую и последнюю цифры числа n. | |
1+2/2!+3/4!+4/6!+5/8!… | |
Вводится последовательность целых ненулевых чисел, признак окончания ввода – ввод 0. определить является ли последовательность возрастающей. | |
Вводится последовательность из N целых чисел. Найти, сколько в ней чисел равных 10. | |
1/(3*4)+2/(4*5)+3/(5*6)+.. | |
Ввести число. Определить, сколько раз в нем встречается цифра 5 | |
Ввести число n. Вывести две первые цифры числа | |
1+1/500+1/1000+1/1500+… | |
Ввести число. определить количество четных цифр. | |
Ввести число n. Определить, входит ли в состав числа цифры 0 и 1. | |
1+0,1/23+ 0,1/33+ 0,1/43+ … | |
Ввести число. Вычислить сумму первой и последней цифры. | |
Последовательно вводятся числа, найти их произведение. Ввод остановить если произведение стало больше 50. | |
0,12+0,012/2!+ 0,0012/3!+ … | |
Ввести число. Определить является ли оно степенью 2 (число 16 является, а 22 нет). | |
Последовательно вводятся числа, найти их произведение. Ввод остановить после ввода второго отрицательного значения. | |
1/(2*4)+2/(3*5)+3/(4*6)+.. | |
Дано число N(N>9) определить количество нулей в записи числа, кроме нулей в младших разрядах данного числа. Пример, N=10207000,результат 2. | |
Последовательно вводятся числа, найти их произведение. Ввод остановить после ввода значения которое больше 50. | |
1+1/23+ 1/33+ 1/43+ 1/53+… | |
Ввести число. Найти наибольшую цифру в записи числа. | |
Ввести число (>99). Найти сумму всех цифр числа. | |
1/(1*2*3)+2/(2*4*6)+3/(3*6*9)+.. | |
Ввести число. Получить другое число, путем удаления единиц, сохранив порядок следования оставшихся цифр. Пример, 213412, результат 2342 . | |
Ввести число. Вывести все цифры числа, уменьшив каждую на единицу. | |
1+1/3!+1/6!+1/9!+… | |
Ввести число. Определить сумму цифр в первой половине числа . Пример, N=123456, результат 6. | |
Последовательно вводятся числа, найти их сумму. Ввод остановить если сумма стала больше 100. | |
x2+x2/2!+ x2/3!+ x2/4!+ x2/5!+… | |
Ввести число. определить произведение его цифр. | |
Ввести число. Определить, сколько раз в нем встречается цифра 1. | |
1+1/150+1/200+1/250+… | |
Вводится последовательность целых ненулевых чисел, признак окончания ввода – ввод 0. определить является ли последовательность знакочередующей (например, -2 1-4 5 -6 да, 4 7 -2 -3 нет). | |
Вычислить сумму чётных чисел на отрезке от 10 до 30. | |
1/(20*4)+2/(30*5)+3/(40*6)+.. | |
Ввести число n. Приписать к нему такое же число. (Например, дано 234,результат 234234). | |
Составить программу, запрашивающую пароль пользователя. В случае правильности пароля выводится на экран фраза: “ Можно приступать к работе!”. | |
1/(2*3*4)+2/(3*4*5)+3/(4*5*6)+.. | |
Ввести число. Определить является ли оно степенью хорошо. (число 64 является, а 44 нет). | |
Последовательно вводятся числа, найти их произведение. Ввод остановить после ввода первого нуля | |
0,12+0,22/2!+ 0,32/3!+ … | |
Ввести число. Определить, сколько раз в нем встречается цифра 1 | |
Последовательно вводятся числа, найти их сумму. Ввод остановить после ввода значения, которое больше 100. | |
x2+x2/2!+ x2/3!+ x2/4!+ x2/5!+… | |
Найти минимальное число, больше 400,которое нацело делится на 14. | |
Вычислить сумму нечётных чисел в диапазоне от 1 до 99 включительно | |
1+1/23+ 1/33+ 1/43+ 1/53+… |
ЛАБОРАТОРНАЯ РАБОТА № 6
Тема: Использование символьного и строкового типа данных в программе на TurboPascal 7.0
Цель работы: Изучение возможностей обработки данных строкового и символьного типа
Пояснения к работе
Символьный тип данных
Значениями символьного типа Char являются элементы конечного и упорядоченного множества символов. Чаще всего используются символы американского стандарта ASCII. Значения типа Char записываются одним символом (например, ‘*’, ‘S’, ‘2’). В рамках этого типа десятичные цифры упорядочены в соответствии с их числовыми значениями (например, ‘5’<’6’). Буквы упорядочены в алфавитном порядке (например, ‘B’<’C’).
Стандартные функции работы с символьным типом
Ord(W) | Определение порядкового номера символа W |
Chr(N) | Определение символа по его порядковому номеру N |
Символы с кодами от 0 до 127 составляют так называемую основную таблицу кодов ASCII. Эта часть идентична на всех IBM- совместимых компьютерах. Цифрам от 0 до 9 соответствуют коды от 48 до 57, буквам латинского алфавита от A до Z - коды от 65 до 90, буквам от a до z – от 97 до 122, буквам русского алфавита от А до Я – коды от 128 до 159.
Строковый тип данных
Тип данных String предназначен для хранения последовательности символов. Строка должна быть заключена в апострофы. Максимальная длина строки указывается в квадратных скобках. Если она не указана, максимальная длина полагается 255. Важной особенностью является то, что к каждому символу строки возможен доступ по его номеру.
Стандартные функции и процедуры работы со строковым типом
ПРОЦЕДУРЫ | ||
Delete(S, P, N) | Удаление N символов из строки S, начиная с позиции P | |
Insert (W, S, P) | В строку S , начиная с позиции P, вставляется строка W. Если результат превысит 255 символов, строка обрывается | |
Str(V, S) | Число V преобразуется в строку, результат в S | |
Val (S, V, W) | Если строка состоит только из цифр, то они преобразуются в числовое значение переменной V, значение W равно0. в противном случае, когда строка состоит не только из цифр, - преобразование не выполнится, W <>0 признак ошибки | |
ФУНКЦИИ | ||
Copy(S, P, N) | Из строки S, начиная с позиции P , выбирается N символов | |
Length(S) | Определяется длина строки S, т.е. число символов из которых она состоит | |
Pos(W, S) | В строке S отыскивается первое вхождение строки W (номер позиции). Если вхождение нет, то выдается 0 | |
Concat(S1, S2, …Sn) или S1+S2+… +Sn | Строки S1, S2, …Sn записываются одна за другой . Если результат превысит 255 символов, строка обрывается. | |
Trim(S) | Удаление начальных и конечных пробелов строки | |
Пример выполнения работы:
Условие Организовать цикл ввода символов и вывода его кода. Ввод закончить если введена точка VAR B: Char; BEGIN Rereat Readln(b); Writeln(Ord(b)); Until b=’.’; END. | Условие: Ввести строку. Вывести первые два символа и два последних символа через тире VAR S, s1,s2, w: String; K: Integer; BEGIN Readln(S); S1:=copy(S,1,2); K:=Length(S); S2:=copy(S,k-1,2); W:=S1+’-‘+S2; Writeln(W); END. |
Контрольные вопросы
· В чем разница между символьной и строковой величинами?
· Какова максимально возможная длина строки?
· Перечислить функции, которые используются для работы с символьными и со строковыми данными.
Варианты к лабораторной работе №6
(ваш номер по журналу соответствует номеру варианта)
№ | Задание 1 Задание 2 Задание 3 |
Ввести слово. Вывести “да”, если первый и последний символ совпадает, в противном случае вывести “нет”. | |
Ввести строку. Определить количество цифр, которые она содержит. | |
Ввести строку. Удалить из нее все буквы А. | |
Ввести слово. Первую и последнюю букву поменять местами. | |
Ввести строку. Определить каких букв больше А или О. | |
Ввести строку и слово. Удалить слово из строки, если она в ней содержится. | |
Ввести слово. Определить является ли оно десятичной записью целого числа. | |
Определить сколько раз в строке встречается сочетание “ht”. | |
Ввести строку, содержащую формулу. Определить правильно ли в ней расставлены скобки (т.е. находится ли справа от каждой открывающейся скобки соответствующая ей закрывающаяся скобка). | |
Вывести первое слово в исходной строке. | |
Ввести строку. Подсчитать , сколько в ней букв R, K, L. | |
Ввести строку. Изменить ее так, чтобы все латинские буквы стали заглавные. | |
Ввести слово .Вывести его без первой и последней буквы. | |
Ввести строку. Заменить в ней каждую точку на троеточие. | |
Ввести строку. Определить сколько раз в строке встречается каждый символ (например, дано kooaaooa, результат а- 3 раза, о -4 раза, к – 1 раз). | |
Удалить среднюю букву при нечетной длине строки и две средние буквы при четной длине строки. | |
Вывести второе слово в исходной строке. | |
Ввести строку. Найти длину самого короткого слова. | |
Ввести строку. Вывести вторую половину строки. | |
Определить сколько раз встречается “о” в первом слове строки. | |
Ввести строку. Слова, следующие за точкой и первое слово должны начинаться с заглавной буквы. Исправить строку, если это не так. | |
Ввести строку. Определить содержится ли в первой половине слова + | |
Ввести строку. Вывести на экран слова, содержащие три буквы. | |
Ввести строку, содержащую латинские буквы. Определить, каких букв больше заглавных или строчных. | |
Ввести строку, которая содержит символ +. Определить, сколько символов следует после него. | |
Ввести строку. «Задвоить» каждый символ строки (например, дано ABCD, результат AABBCCDD). | |
Ввести строку. Удалить из нее все буквы А и О. | |
Ввести слово, в котором содержится буква А, причем не на последнем месте. Вывести символ, следующий за А. | |
Определить количество слов в строке, которые начинаются и заканчиваются одним и тем же символом. | |
Ввести строку из нескольких слов. Разделитель слов пробел. Удалить лишние пробелы, оставив только один пробел между словами. | |
Ввести слово. Вывести слово, полученное путем перестановки местами половинок введенного слова. | |
Ввести строку. Подсчитать , сколько в ней символов * D F H. | |
Ввести строку. Удалить из нее все цифры. | |
В строке есть одна точка с запятой; определить количество символов до нее и после. | |
Ввести строку. Определить сколько раз встречается сочетание abc. | |
Ввести строку. Изменить ее так, чтобы все латинские буквы стали строчными. | |
Ввести число N и один символ сформировать строку, в которой символ повторяется N_раз . | |
Ввести строку. Заменить в ней строчные буквы на заглавные. | |
Ввести два слова. Определить можно ли из букв первого слова составить второе слово. | |
Ввести строку. Удалить из нее все буквы О. | |
Ввести строку. Определить количество заглавных букв. | |
Ввести строку. Заменить в ней сочетание NO на YES. | |
Ввести строку. Если перед символом стоит знак #, то заменить символ на точку. | |
Ввести строку, содержащую одну открывающуюся скобку и одну закрывающуюся. Удалить текст между скобками. | |
Ввести строку. В конец каждого слова добавить сочетание СЛА. | |
Ввести число, определяющее стоимость покупки (например 123, 50). Вывести строку, определяющую стоимость с использованием текста (123 руб. 50 копеек). | |
Ввести имя, отчество и фамилию человека (в одну переменную). Определить пол человека (по отчеству). | |
Ввести строку, в которой каждое слово зашифровано – записано наоборот. Расшифровать текст. | |
Ввести строку. Удалить первое слово. | |
В введенном тексте сочетание “and” заменить на “or”. | |
Ввести строку. Определить количество слов, содержащих букву Z | |
Ввести строку. Вывести символы до первой точки. | |
Ввести строку. Подсчитать , сколько в ней символов * = + | |
Ввести число N и строку. Определить сколько раз символ строки с номером N встречается в строке. | |
Ввести строку, которая содержит двоеточие. Определить сколько символов ему предшествует. | |
Ввести строку. Удалить те символы строки, перед которыми стоит $ (его то же удалять). | |
Ввести строку. Вывести каждый второй символ строки. | |
Ввести строку. Определить содержится ли во второй половине слова символ = | |
Ввести строку и слово. Определить сколько раз слово встречается в строке. | |
Ввести строку, содержащую цифры. Определить является ли она записью восьмеричного числа. | |
Ввести строку. Удалить из нее все буквы А. | |
Ввести строку. Определить содержит ли она символы отличные от латинских заглавных букв. | |
Ввести строку, содержащую цифры. Определить является ли она записью шестнадцатеричного числа. | |
Ввести строку. Вывести символы до первого двоеточия. | |
Ввести строку. Вывести последнее слово. | |
Ввести целое число. Вывести его представление с разделением на триады цифр (например, дано 1000450, результат 1 000 450 ). | |
Ввести строку. Удалить последнее слово. | |
Ввести строку. Найти длину самого длинного слова. | |
Ввести строку. Заменить в ней заглавные буквы на строчные. | |
Ввести строку. Удалить из нее сочетания РHP. | |
Ввести строку. Определить сколько раз в последнем слове встречается K. | |
Ввести строку. Подсчитать самую длинную последовательность подряд идущих букв А. | |
Ввести слово, в котором содержится сочетание АB, причем не на последнем месте. Вывести символ, следующий за АB. | |
Ввести строку, содержащую одну открывающуюся скобку и одну закрывающуюся. Вывести текст между скобками. | |
Ввести строку, состоящую из латинских букв. Заменить каждую букву строки на букву, следующую за ней по алфавиту (например, a-b, b-c, z – a). | |
Ввести строку из нескольких слов. Вывести последний символ первого слова. | |
Ввести строку, содержащую цифры. Определить является ли она записью двоичного числа. | |
Ввести строку. Удалить из нее все латинские буквы. | |
Ввести строку. Вывести второе слово. | |
Ввести строку. Определить количество заглавных букв. | |
Ввести строку. Определить сколько слов начинается и заканчивается на одну и ту же букву. | |
Ввести строку. После каждой запятой вставить пробел. | |
Ввести строку из нескольких слов. Вывести первый символ последнего слова. | |
Составить программу перевода десятичного числа в двоичное. | |
Ввести строку из нескольких слов. Вывести первый символ второго слова. | |
Ввести строку. Определить сколько раз в ней встречается сочетание TAG. | |
Ввести строку. Удалить из нее все символы, которые не являются латинскими буквами. | |
Ввести слово. Вывести его без двух первых и двух последних символов. | |
Ввести строку, состоящую из латинских букв. Заменить каждую букву строки на букву, предшествующей по алфавиту (например, a-z, b-a, c – b). | |
Ввести строку. Вывести текст, содержащийся между первой и второй точкой. | |
Ввести слово. Вывести второй и предпоследний символ. | |
Ввести строку. Зашифровать ее, заменив каждый символ его кодом | |
Ввести зашифрованный текст (см. Задание 2) Расшифровать его. |
ЛАБОРАТОРНАЯ РАБОТА № 7
Тема: Обработка массивов в программе на TurboPascal 7.0
Цель работы:Изучение возможностей обработки одномерных массивов
Пояснения к работе
Массив, как и таблица, представляет собой совокупность пронумерованных однотипных значений, имеющих общее имя. Элементы массива обозначаются переменными с индексами. Массив, хранящий линейную таблицу, называется одномерным.
Описание одномерного массива:
Var
<имя_массива> : ARRAY [<размер массива>] OF <тип массива>;
Пример:
Var
MAS : ARRAY [1..10] OF Integer;
Описание массива определяет, во-первых, размещение массива в памяти, во-вторых, правила его дальнейшего использования в программе.
Обращение к отдельному элементу массива производится при помощи указания имени массива и квадратных скобках индекса конкретного элемента. В качестве индекса может употребляться любое выражение соответствующего типа.
Например, MAS[5], MAS[i], MAS[m div 2].
Пример выполнения работы:
Условие В массиве хранятся сведения о количестве осадков, выпавших за каждый день января. Определить общее количество осадков за месяц | Var I, S : Integer; Mas : Array[1..31] of Integer; Begin For I:=1 to 31 Do Readln(Mas[i]); S:=0; For I:=1 to 31 Do S:=S+Mas[i]; Writeln(S); End. |
Условие: Массив из 10 элементов заполнить случайными значениями. Определить максимальное значение | Var I, max : Integer; Mas : Array[1..10] of Integer; Begin For I:=1 to 10 Do Mas[i]:=Random(100); Max:=mas[1]; For I:=2 to 10 Do If Mas[i]>Max Then Max:=Mas[i]; Writeln(‘max=’,Max); End. |
Условие: Массив из 8 элементов заполнить случайными значениями поменять местами значения первого и последнего элемента массива Массив вывести | Var I, В : Integer; Mas : Array[1..8] of Integer; Begin For I:=1 to 8 Do Mas[i]:=Random(100); B:=Mas[1]; Mas[1]:=Mas[8]; Mas[8]:=B; For I:=1 to 8 Do Writeln( Mas[i]); End. |
Контрольные вопросы
· Что такое массив?
· Какие массивы существуют?
· Как объявляется одномерный массив?
· Как обратится к элементу одномерного массива?
Варианты к лабораторной работе №7
(ваш номер по журналу соответствует номеру варианта)
№ | Задание 1 Одномерный массив N элементов заполнить случайными значениями, вывести его на экран. |
Задание 2 Одномерный массив 8 элементов заполнить значениями с клавиатуры. | |
Задание 3 Одномерный массив 12 элементов заполнить случайными положительными и отрицательными значениями. | |
N=8. Ввести К. Подсчитать и вывести количество элементов массива, равных К. | |
Сформировать второй массив из положительных элементов первого массива. | |
Определить, является ли массив унимодальным, (т.е. содержит ли он элементы только одного знака). | |
N=10 Все отрицательные элементы массива заменить нулем. | |
Определить какая сумма элементов больше, расположенная до максимального элемента или после. | |
От каждого элемента массива вычесть среднее арифметическое всех элементов массива. | |
N=12 Все элементы массива, значения которых кратны 5, увеличить в 2 раза. Массив вывести | |
Определить, образуют ли элементы массива неубывающую последовательность. | |
Определить произведение четных по значению элементов, стоящих на нечетных номерах. | |
N=7 Определить сумму положительных элементов массива. | |
Вывести два самых минимальных элемента массива. | |
Переставить местами первый положительный элемент с последним отрицательным. | |
N=12 Подсчитать и вывести количество нулевых элементов массива. | |
Определить в какой половине массива находится максимальный элемент. | |
Сформировать второй массив, разместив в нем элементы первого массива, значения которых оканчиваются на 7. | |
N=15 Определить количество элементов, значения которых больше суммы соседних элементов (предыдущего и последующего). | |
Определить количество простых чисел в массиве. | |
Найти элемент, наиболее близкий к среднему значению всех элементов массива. | |
N=8 Определить количество элементов массива, значения которых = первому элементу. | |
Найти сумму минимального и максимального элементов. | |
Сформировать второй массив, разместив в нем элементы первого массива со сдвигом на 2 позиции вправо. | |
N=12 Найти среднее арифметическое значение отрицательных элементов массива. | |
Сдвинуть элементы массива на одну позицию влево, первый элемент переместить на последнее место. | |
Каждый третий элемент массива заменить полусуммой двух предыдущих элементов. | |
N=14 Ввести К. Вывести номера элементов массива, равных К. | |
Определить содержит ли массив элементы, равные минимальному элементу. | |
Вывести номера локальных максимумов, т.е. таких Ai, что A i-1 < Ai >A i+1 | |
N=10 Определить сколько раз в массиве меняется знак. | |
Определить наибольший общий делитель для всех элементов массива. | |
Определить, какой элемент, максимальный или минимальный, расположен ближе к первому элементу. | |
N=12 Ввести число К Определить количество элементов массива, значения которых больше K. | |
Все элементы массива увеличить в 3 раза. Массив вывести. | |
Определить максимальное значение сред положительных элементов массива. | |
N=15 Определить количество нечетных значений в массиве. | |
Поменять местами минимальный и максимальный элементы массива. | |
Даны два одномерных массива одинаковой размерности. Найти их скалярное произведение. | |
N=20 Каждый элемент массива заменить его квадратом. Массив вывести. | |
Вывести первый и второй максимум. | |
Пусть первый массив А. сформировать массив В по следующему правилу В[1]=A=[1], B[2]=A[12], B[3]=A[2], B[4]=A[11]… | |
N=15 Первый отрицательный элемент заменить нулем. Массив вывести | |
Найти среднее арифметическое первых подряд идущих положительных элементов | |
Поменять местами первый элемент массива с минимальным элементом | |
N=18 Все отрицательные элементы массива заменить значением первого элемента. | |
Исходный массив упорядочен по убыванию Ввести число К и вставить его в массив, не нарушая упорядоченности. | |
Найти номера первого и последнего нул |