Сложная обработка последовательности




Простая программа

Цель работы:

− Структура простой программы на языке программирования Pascal;

− Процедуры ввода/вывода;

− Оператор присваивания;

− Изучение основных операций среды Free Pascal.

 

Содержание лабораторной работы

Рассмотрим структуру простейшей программы на примере. Дано два целых числа. Получить их сумму.

Var a, b: integer;

Begin

Writeln(‘Введите два числа’);

Readln(a, b);

S:= a+b;

Writeln(‘ Сумма = ‘,s);

End.

В среде Free Pascal для набора исходного текста программы необходимо открыть новое окно. Для этого выбираем пункт меню File / New. После ввода текста программы для проверки синтаксических ошибок и компиляции следует нажать комбинацию клавиш Alt+F9. При обнаружении компилятором ошибок, необходимо их исправить и повторно нажать указанную комбинацию клавиш. Как только компиляция выполнена, для запуска программы следует нажать комбинацию клавиш Ctrl+F9. Программа запустится. В нашем примере необходимо вести два целых числа. Для того, чтобы просмотреть результат работы программы, следует нажать Alt+F5. Эта же комбинация возвращает окно редактирования с исходным текстом программы.

Задания для самостоятельной работы

1. Вычислить площадь треугольника по трем сторонам.

2. Дано трехзначное число. Найти сумму его цифр.

3. Дано двузначное число. Получить новое число, в обратном порядке следования цифр.

 

Домашние задания

1. Дано пятизначное число. Найти сумму его цифр.

2. Дано трехзначное число. Получить новое число, в обратном порядке следования цифр.

3. Дано четырехзначное число. Найти произведение его цифр.

 

Лабораторная работа №2

Условный оператор

Цель работы:

− Синтаксис и семантика условного оператора;

− Вложенный условный оператор;

− Операторные скобки.

 

Содержание лабораторной работы

Синтаксис условного оператора следующий:

If <условие> then <оператор1> else <оператор2>

Пример 1. Дано три целых числа. Найти наибольшее число.

Var a, b, c: integer;

Begin

Writeln(‘Введите три числа’);

Readln(a, b, c);

If (a>b) and (a>c) then writeln(a);

If (b>a) and (b>c) then writeln(b);

If (c>a) and (c>b) then writeln(c);

End.

При решении этой задачи эффективнее использовать вложенный условный оператор.

Пример 2. Дано три целых числа. Найти наибольшее число, используя вложенный условный оператор.

Var a, b, c: integer;

Begin

Writeln(‘Введите три числа’);

Readln(a, b, c);

If (a>b) then

If (a>c) then writeln(a)

else writeln(c)

else If (b>c) then writeln(b)

else writeln(c);

End.

Если в качестве оператора необходимо указать несколько действий, то эти действия следует заключать в операторные скобки: begin … end.

Пример 3. Дано два числа. Если они оба положительны, то увеличить оба числа вдвое, если хотя бы одно четно, то уменьшить оба числа на два.

Var a, b: integer;

Begin

Writeln(‘Введите два числа’);

Readln(a, b);

If (a>0) and (b>0) then begin a:=2*a; b:=2*b; end

Else

If (a mod 2 = 0) or (b mod 2 = 0) then begin a:=a-2; b:=b-2; end;

Writeln(a, b);

End.

Задания для самостоятельной работы

1. Дано четыре числа. Найти наибольшее число (способ 1 – используя вложенный оператор; способ 2 – используя дополнительные переменные и парное сравнение).

2. Дано трехзначное число. Верно ли, что сумма его первой и последней цифр больше квадрата второй цифры.

3. Дано два числа. Если они разных знаков, то найти их сумму. В противном случае, найти их произведение.

4. Дано два трехзначных числа. Если сумма цифр первого числа больше сумы цифр второго числа, то в обоих числах поменять местами последнюю и предпоследнюю цифры.

Домашние задания

1. Дано трехзначное число. Найти наименьшую цифру числа.

2. Дано четырехзначное число. Является ли оно палиндромом.

3. Дано пятизначное число. Определить что больше: сумма первых двух цифр или сумма последних двух цифр.

4. Дано два числа. Если они оба делятся на 5, то заменить их своими квадратами. Если хотя бы одно число отрицательно, то заменить их своим утроенным значением.

5. Дано два числа. Если хотя бы в одном числе предпоследняя цифра больше последней, то в обоих числах увеличить последнюю цифру на два, если это возможно.

Лабораторная работа №3

Операторы циклов

Цель работы:

− Оператор цикла с параметром;

− Оператор цикла с предусловием;

− Оператор цикла с постусловием.

 

Содержание лабораторной работы

Оператор цикла с параметром имеет следующий синтаксис:

For i:=<начальное значение> to <конечное значение> do <оператор>

Оператор используется в том случае, когда количество итераций цикла заранее известно.

Пример 1. Дано целое число. Найти сумму его делителей.

Var a, s, i: integer;

Begin

Writeln(‘Введите число’);

Readln(a);

S:=0;

For i:=1 to a do

If a mod i =0 then s:=s+ i;

Writeln(s);

End.

Оператор цикла с предусловием имеет следующий синтаксис:

While <условие> do <оператор>

Оператор используется в том случае, когда число итераций цикла заранее неизвестно.

Пример 2. Дано целое число. Найти сумму его цифр.

Var a, s: integer;

Begin

Writeln(‘Введите число’);

Readln(a);

S:=0;

While a<>0 do

begin

s:=s+ a mod 10;

a:= a div 10;

end;

Writeln(s);

End.

Другим циклом с неизвестным заранее числом итераций является цикл с постусловием. Его синтаксис следующий.

Repeat <операторы> until <условие>

Пример 3. Дано целое число. Найти первую его цифру.

Var a: integer;

Begin

Writeln(‘Введите число’);

Readln(a);

repeat

a:= a div 10;

until a < 10;

Writeln(a);

End.

 

Задания для самостоятельной работы

1. Даны числа x и y. Вычислить xy.

2. Дано число. Верно ли, что у числа больше двух нечетных делителя (исключая 1 и само число).

3. Определить является ли заданное число простым.

4. Построить N-е число Фибоначчи.

5. Дано число. Найти количество его цифр.

6. Дано число. Найти сумму его четных цифр.

7. Дано число. Найти произведение цифр «2» и «5», встречающихся в его записи.

8. Дано число. Является ли оно числом Фибоначчи.

9. Дано число. Верно ли, что в его записи нет нулей (использовать цикл с постусловием).

Домашние задания

1. Дано число. Вычислить его факториал.

2. Дано число. Найти произведение его делителей, делящихся на 3.

3. Определить является ли заданное число совершенным.

4. Дано два числа. Определить, являются ли они дружественными.

5. Дано число. Верно ли, что в числе нет двоек и троек.

6. Дано число. Верно ли, что в числе все цифры одинаковые.

7. Дано число. Найти сумму его нечетных цифр.

8. Дано число. Найти количество заданной цифры в числе (использовать цикл с постусловием).

9. Даны числа x и y. Вычислить xy (использовать цикл с предусловием и с постусловием).

 

 

Лабораторная работа №4

Последовательности

Цель работы:

− Вычисление суммы ряда;

− Обработка последовательности чисел с заданным числом элементов;

− Обработка последовательности чисел, оканчивающаяся заданным значением.

 

Содержание лабораторной работы

Для обработки последовательности элементов с заданным изначально количеством этих элементов удобно использовать следующую схему.

Readln(n);

For i:=1 to n do

Begin

Readln(a);

Обработка элемента а

End;

Здесь n – количество элементов в последовательности, а – элемент последовательности.

Пример 1. Дана последовательность N целых чисел. Найти количество делящихся на 5 чисел последовательности.

Var n, i, k, a: integer;

Begin

K:=0;

Readln(n);

For i:=1 to n do

Begin

Readln(a);

If a mod 5 = 0 then k:=k+1;

End;

Writeln(k);

End.

В случае когда количество элементов последовательности неизвестно, но указан маркер окончания последовательности, удобно использовать цикл с предусловием или с постусловием. В условии указывается маркер окончания. При этом если использовать цикл с предусловием, необходимо до цикла считать первый элемент последовательности.

Readln(a);

While a <> 0 do

Begin

Обработка элемента а

Readln(a);

End;

Пример 2. Дана последовательность целых чисел, оканчивающаяся нулем. Найти сумму не делящихся на 5 чисел последовательности.

Var n, i, s, a: integer;

Begin

s:=0;

Readln(a);

While a <> 0 do

Begin

If a mod 5 <> 0 then s:=s+a;

Readln(a);

End;

Writeln(s);

End.

Пример 3. Вычислить

Var n, k, p, t, f: integer; s: real;

Begin

s:=0;

Readln(n, y);

p:=1; t:=y;

For k:=1 to n do

Begin

If k mod 2 = 0 then f:=1 else f:=-1;

p:=p*k;

t:=t*y*y;

s:=s+f*(2+p)/t;

End;

Writeln(s);

End.

При вычислении суммы ряда удобно сомножители формулы слагаемого развить на типы: определение знака слагаемого (переменная f), вычисление степени числа (переменная t), вычисление факториала (переменная p).

 

Задания для самостоятельной работы

1.Вычислить

2.Вычислить

3.Дана последовательность из N целых чисел. Найти количество положительных трехзначных чисел, не оканчивающихся на 5.

4.Дана последовательность из N целых чисел. Найти сумму модулей отрицательных чисел.

5.Дана последовательность из N целых чисел. Найти произведение индексов нечетных чисел.

6.Дана последовательность из N целых чисел. Найти наибольшее число.

7.Дана последовательность целых чисел, оканчивающаяся числом 0. Найти количество чисел, у которых последняя цифра больше предпоследней.

8.Дана последовательность целых чисел, оканчивающаяся числом 0. Найти произведение чисел, сумма единиц и двоек в записи которых четна.

9.Дана последовательность целых чисел, оканчивающаяся числом 100. Найти сумму чисел, количество четных цифр в записи больше трех.

 

Домашние задания

1. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти сумму квадратов чисел, оканчивающихся на 2 или на 13.

2. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти количество чисел, принадлежащих диапазону [-20; 35].

3. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти наибольшее число.

4. Дана последовательность из N целых чисел. Найти произведение чисел, у которых предпоследняя цифра четна.

5. Дана последовательность из N целых чисел. Найти сумму порядковых номеров положительных двузначных чисел.

6. Вычислить .

7. Вычислить .

 

Лабораторная работа №5

Сложная обработка последовательности

Цель работы:

− Обработка последовательности чисел с заданным числом элементов (анализ двух элементов);

− Обработка последовательности чисел, оканчивающаяся заданным значением (анализ двух элементов).

 

Содержание лабораторной работы

Пример 1. Дана последовательность N целых чисел. Найти количество положительных чисел, после которых следует отрицательное число.

Var n, i, k, a, b: integer;

Begin

K:=0;

readln(n);

readln(a);

For i:=2 to n do

Begin

Readln(b);

If (a > 0) and (b < 0) then k:=k+1;

a:=b;

End;

Writeln(k);

End.

Пример 2. Дана последовательность целых чисел, оканчивающаяся нулем. Найти сумму положительных чисел, после которых следует отрицательное число.

Var n, i, s, a, b: integer;

Begin

s:=0;

Readln(a);

While a <> 0 do

Begin

Readln(b);

If (a > 0) and (b < 0) then s:=s+a;

a:=b;

End;

Writeln(s);

End.

Пример 3. Дана последовательность N целых чисел. Найти сумму простых чисел.

Var n, i, j, s, a: integer; f: Boolean;

Begin

s:=0;

readln(n);

For i:=1 to n do

Begin

Readln(a);

f:=true;

For j:=2 to a-1 do

If (a mod j <> 0) then f:=false;

If f then s:=s+a;

End;

Writeln(s);

End.

Задания для самостоятельной работы

1. Дана последовательность из N целых чисел. Верно ли, что последовательность является возрастающей.

2. Дана последовательность из N целых чисел. Найти сумму чисел, оканчивающихся на 5, перед которыми идет четное число.

3. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти сумму положительных двузначных чисел, за которыми идет оканчивающееся на 11 число.

4. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти количество троек соседних элементов, где каждое следующее число больше предыдущего.

5. Дана последовательность из N целых чисел. Найти произведение индексов простых чисел.

6. Дана последовательность из N целых чисел. Найти количество чисел с четной суммой цифр.

7. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти сумму чисел, в записи которых нет нулей.

8. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти произведение чисел, в записи которых количество единиц и двоек нечетно, а до таких чисел следует отрицательное число.

9. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти сумму чисел, в записи которых количество четных цифр нечетно, а за такими числами следует положительное число.

 

Домашние задания

1. Дана последовательность из N целых чисел. Верно ли, что последовательность является знакочередующейся.

2. Дана последовательность из N целых чисел. Найти произведение чисел, не оканчивающихся на 13, перед которыми идет нечетное число.

3. Дана последовательность из N целых чисел. Найти количество чисел, не делящихся на 12, за которыми идет отрицательное число.

4. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти сумму чисел, после которых идет число не оканчивающееся на 2 и 3.

5. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти количество пар соседних чисел, где второе число в паре втрое больше предыдущего.

6. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти сумму чисел, в записи которых ровно две цифры «5».

7. Дана последовательность из N целых чисел. Найти количество совершенных чисел.

8. Дана последовательность из N целых чисел. Найти произведение чисел, сумма цифр которых больше заданного числа.

9. Дана последовательность целых чисел, оканчивающаяся числом 0. Найти количество чисел Фибоначчи, перед которыми идет число, в записи которого не меньше трех цифр «1».

Лабораторная работа №6



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-10-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: