Министерство образования и науки Российской федерации

Федеральное агентство по образованию

Государственное образовательное учреждение

высшего профессионального образования

«РОСТОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

НАЧАЛА ИНФОРМАТИКИ

для студентов 1 механико-математического факультета

по курсу

ИНФОРМАТИКА

Ростов-на-Дону

2006

Методические указания разработаны сотрудником кафедры прикладной математики и программирования, старшим преподавателем .

Ответственный редактор ст. преподаватель

Компьютерный набор и верстка ст. преподаватель .

Печатается в соответствии с решение кафедры прикладной математики и программирования механико-математического факультета РГУ, протокол №6 от 01.01.01 г.

СОДЕРЖАНИЕ

ВВЕДЕНИЕ

4

ТЕМА 1. ОПЕРАТОРЫ ПРИСВАИВАНИЯ. . .

5

ТЕМА 2. ОПЕРАТОРЫ: УСЛОВНЫЙ, СОСТАВНОЙ. .

7

ТЕМА 3. ОПЕРАТОРЫ ЦИКЛА.

11

ТЕМА 4. ВЫЧИСЛЕНИЕ СУММ КОНЕЧНЫХ И БЕСКОНЕЧНЫХ РЯДОВ, ИТЕРАЦИОННЫЕ ЦИКЛЫ

20

ТЕМА 5. ПРОЦЕДУРЫ И ФУНКЦИИ

32

ЛИТЕРАТУРА. . .

43


ВВЕДЕНИЕ

Методические указания содержат набор задач для проведения учебной практики по курсу «Информатика» для студентов 1 курса механико-математического факультета специальностей “механика” и “прикладная математика” по темам: операторы присваивания, условный оператор, оператор цикла, вычисление сумм конечных и бесконечных рядов, процедуры и функции.

Задания разбиты на темы, приведены решения типовых задач по каждой теме. Студентам необходимо описать алгоритм решения своей задачи с использованием языка программирования Паскаль и структурного подхода в программировании, оттранслировать программу на компьютере и оттестировать ее с использованием полного набора контрольных (тестовых) примеров.

НЕ нашли? Не то? Что вы ищете?

Структурное программирование – это такой подход к написанию программ, при котором они становятся более ясными для понимания, более корректными и лучше подходящими для дальнейших модификаций.

Студентам необходимо писать программы в простой и чёткой манере. Подобный стиль иногда называют KISS (‘keep it simple stupid’ – делай проще, глупец) [3].

Хороший стиль программирования: в каждой строке программы должно быть не более одного оператора.

Полезно знать, что исследования, проведённые математиками Бома и Якопони показали, что все программы могут быть написаны с использованием всего трёх управляющих структур, а именно структуры следования, структуры выбора и структуры повторения.

1 ОПЕРАТОРЫ ПРИСВАИВАНИЯ

Большинство вычислений выполняются при помощи оператора присваивания.

Имена переменных, такие как x, y, sum и integer1, в действительности соответствуют ячейкам памяти компьютера. Каждая переменная имеет имя, тип и значение.

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

Процесс считывания значения из памяти называют неразрушающим считыванием из ячейки.

ЗАДАНИЯ

1.1 Записать следующие формулы:

a) ; б) ; в) ;

г) ; д) ; е) ;

ж) ; з) ; и) ;

к)

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

1.3 Как записать на Паскале синус от x градусов?

1.4 Записать операторы присваивания, которые переменной d присваивают

а) среднее арифметическое чисел x, y, z;

б) расстояние между точками с координатами и (;

в) площадь треугольника со сторонами a, b, c.

1.5 Записать оператор присваивания, который меняет знак у значения переменной z.

1.6 Поменять местами значения переменных x и y.

1.7 Поменять местами значения переменных x, y и z так, чтобы в x оказалось значение переменной y, в у – значение переменной z, а в z – прежнее значение переменной x.

1.8 Чему равно значение переменной z после выполнения оператора z:=7/3 ?

1.9 Присвоить целой переменной h первую от конца цифру в записи положительного целого числа k.

1.10 Присвоить целой переменной h третью от конца цифру в записи положительного целого числа k (например, если k= то h=7).

1.11 Присвоить целой переменной h первую цифру из дробной части положительного вещественного числа z (так, если z=78.125, то h=1).

1.12 Целой переменной s присвоить сумму цифр трёхзначного целого числа k.

1.13 Записать оператор присваивания, с помощью которого логическая переменная f получает значение

а) true, если целое число k делится на 7, и false – в противном случае;

б) true, если точка (x, y) лежит вне круга радиуса r с центром в точке (1,0) и false – в противном случае;

в) true, если 0<x<1, и false – в противном случае;

г) true, если x не принадлежит отрезку [-1,1], и false – в противном случае;

д) true, если x лежит вне отрезков [2,5] и [-1,0], и false – в противном случае.

2 ОПЕРАТОРЫ: УСЛОВНЫЙ, СОСТАВНОЙ

Условный оператор служит для выбора одного из возможных вариантов выполнения программы

if <логическое выражение > then

<оператор 1>

else

<оператор2>;

Логическое выражение возвращает тип boolean - логический тип, т. е. результатом будет одно из логических значений: true (истина) или false (ложь). Если проверка логического выражения даёт результат true, то выполняется оператор1, если нет – оператор2.

Сокращённая форма условного оператора

if <логическое выражение > then

<оператор 1>.

Если логическое выражение равно true, то оператор1 будет выполнен. Если же логическое выражение равно false, то будет выполнен следующий за if оператор. Рассмотрим пример:

Текст программы будет иметь вид:

Program one;

Var z, y : real;

Begin

Writeln(‘введите y’);

Readln(y);

If y<8 then

z:=y

else

if y=8 then

Z:=y*y

else

Z:=y*y*y;

Writeln(‘z=’,z:9:4)

End.

Обратите внимание на то, что очень распространённой ошибкой при написании программ, имеющих тройное разветвление, является использование приведённого ниже фрагмента для вычисления z:

If y<8 then

z:=y;

If y=8 then

Z:=y*y

else

Z:=y*y*y;

Что здесь не так? Проследите, какое значение получит z, если y<8?

Если <оператор1>и (или) <оператор2> содержит более одного оператора, то нужно использовать составной оператор. Рассмотрим пример: даны два числа a и b, большее из них поместить в переменную a, меньшее – в переменную b.

Program two;

Var a, b,c : real;

Begin

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

Readln(a, b);

If b>a then

Begin

c:=a; a: =b; b:=c

End;

Writeln(‘большее =’,a:7:2,’ меньшее=’,b:7:2)

End.

ЗАДАНИЯ

2.1 y=max{a, b};

2.2 y=max{a, b,c};

2.3

2.4

2.5

2.6 w={min{x, max{y, z}}

2.7

2.8

2.9

2.10 y=

2.11 y=f+a, где z=x

x, a –заданы.

2.12

2.13

2.14 y=

2.15

2.16 Меньшее из двух различных значений x и y заменить их полусуммой, большее – их удвоенным произведением.

2.17 Если x=y, то f=1, g=2,

если x то .

2.18 Исследовать систему:

на существование решения.

2.19 Проверить, являются ли заданные значения x и y решением системы двух линейных уравнений с двумя неизвестными.

2.20 Проверить, могут ли значения переменных a, b, c быть длинами сторон треугольника?

2.21 Даны значения вещественных переменных x, y и значение логической переменной a. Описать алгоритм вычисления значения z:

2.22 Даны два не равных нулю числа x и y. Если оба числа отрицательные, то меньшее из них возвести в квадрат; если числа разного знака, то оба числа увеличить на 1; если оба числа положительные, то большее число разделить пополам.

2.23 Даны два числа x и y. Большее из них поместить в А, меньшее - в В.

2.24 Даны два целых числа. Если они равны, то каждому присвоить сумму этих чисел. Если числа не равны, то каждое число обнулить.

2.25 Даны три числа. Если они упорядочены по возрастанию, удвоить каждое число, иначе изменить каждое число на обратное.

2.26 Даны три целых числа. Найти количество положительных чисел, количество отрицательных и количество равных нулю.

2.27 y=

3 ОПЕРАТОР ЦИКЛА

В языке Паскаль имеется три вида операторов цикла: оператор цикла с параметром (for), оператор цикла с предусловием (while), оператор цикла с постусловием (repeat-until). При заданном количестве повторений целесообразнее использовать цикл со счётчиком (цикл for). Если количество повторений не задано, используется цикл repeat или while.

Рассмотрим пример: вычислить среднее арифметическое последовательности из n вещественных чисел.

Текст программы:

Program three;

Var i, n : integer;

s, x : real;

Begin

Writeln(‘задайте количество элементов’);

Readln(n);

s:=0;

For i:=1 to n do

Begin

Writeln(‘задайте число’);

Readln(x);

s:=s+x

End;

If n<>0 then

begin

s:=s/n;

Writeln(s:10:4)

End

Else

Writeln(‘последовательность не содержит элементов’)

End.

Рассмотрим пример, в котором количество повторений не указано, задан признак конца последовательности – число ноль. Вычислить среднее арифметическое введённых чисел. Будем водить числа (положительные и отрицательные), пока не будет введено число ноль.

Текст программы:

Program four;

Var n:integer;

s,x:real;

Begin

s:=0; n:=0;

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

Readln(x);

While x<>0 do

Begin

n:=n+1;

s:=s+x;

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

Readln(x)

End;

If n<>0 then

begin

s:=s/n;

Writeln(s:10:4)

End

Else

Writeln(‘последовательность не содержит элементов’)

End.

В этой программе числа вводятся в цикле, но первое число вводим до начала оператора цикла, т. к., чтобы войти в цикл (или пропустить его), должны проверить условие ‘x<>0’.

Изменим условие задачи: вводить числа (положительные и отрицательные), пока не будет введён символ ‘0’; вычислить среднее арифметическое введённых чисел, последовательность чисел – не пустая (имеется хотя бы одно число ).

Текст программы:

Program five;

Var n:integer;

s, x: real;

c:char;

Begin

s:=0; n:=0;

Repeat

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

Readln(x);

n:=n+1;

s:=s+x;

Writeln(‘ввод продолжить? 0/1’);

Readln(c)

Until c=’0’;

s:=s/n;

Writeln(s:10:4)

End.

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

ЗАДАНИЯ

3.1 Даны целое n>0 и последовательность из n вещественных чисел. Найти:

а) сумму и произведение всех чисел ;

б) сумму отрицательных чисел и произведение положительных чисел;

в) среднее арифметическое положительных чисел;

г) величину наибольшего среди чисел этой последовательности;

д) величину наименьшего (и его номер) среди чисел этой последовательности;

е) количество положительных, отрицательных и равных нулю чисел;

ж) сумму чисел ( и их количество), принадлежащих отрезку [c, d];

з) количество чисел, не принадлежащих отрезку [-1,1];

и) номера чисел со значением равным значению переменной z;

к) номера чисел, имеющих значения отличные от нуля;

л) разность между максимальным и минимальным из них;

м) количество чисел, больших своих “соседей”, т. е. предыдущего и последующего чисел;

н) количество пар одинаковых чисел;

3.2 Даны целое n>0 и последовательность n из вещественных чисел. Проверить:

а) каких чисел среди элементов этой последовательности больше: положительных или отрицательных ;

б) какое из чисел этой последовательности встретилось раньше: максимальное или минимальное;

в) есть ли среди элементов последовательности числа равные нулю;

г) все ли элементы последовательности чётные;

д) все ли элементы последовательности равны между собой.

е) является ли последовательность упорядоченной по возрастанию;

ж) является ли последовательность знакочередующейся;

з) все ли числа последовательности положительные;

г) все ли элементы последовательности принадлежат отрезку [c, d];

е) есть ли среди элементов последовательности положительные числа.

3.3 Вывести на печать все двузначные целые числа, сумма цифр которых – чётное число и больше произведения цифр числа.

3.4 Дано целое число n>0. Выполнить следующие действия:

а) вывести на печать делители числа n при условии, что число n делится и на квадрат делителя числа n;

б) найти наименьшее среди чисел (k=1, 2, …, n).

3.5 Даны целое n>0 и последовательность n из целых чисел. Напечатать:

а) числа, у которых последняя цифра равна нулю;

б) числа, у которых последние две цифры одинаковые (например: 1255, 311);

в) значение максимального числа среди чётных элементов последовательности;

г) значение минимального числа среди нечётных элементов последовательности;

д) значение максимального и его номер число среди положительных элементов последовательности;

е) значение минимального числа среди элементов последовательности с чётными номерами;

ж) значение первого положительного элемента последовательности (и его номер);

з) номер первого элемента имеющего нулевое значение.

3.6 Вычислить и напечатать таблицу значений двух функций для различных значений аргумента в диапазоне от a до b с шагом h (a, b и h задаются, a<b). Если функция не имеет значения при каком то x, то в таблицу помещать ‘-‘.

а) ;

б) ;

в) ;

г) ;

д) ;

е) ;

ж) ;

з) ;

и) ;

к) ;

л) ;

м) ;

н) ;

о) .

3.7 Даны целое n>0 и последовательность n из целых чисел. Выполнить следующие действия:

а) каждый элемент возвести в i-ю степень (i-номер элемента последовательности);

б) напечатать те элементы последовательности, которые являются простыми числами;

в) подсчитать, сколько отрицательных чисел входит в начало последовательности из n чисел;

г) определить количество чисел в наиболее длинной подпоследовательности из подряд идущих нулей;

е) подсчитать количество чисел до первого нулевого элемента;

ж) найти сумму чисел после первого нулевого элемента;

з) подсчитать количество чисел, расположенных между первым и вторым нулями;

и) для каждого x вычислить y по формуле:

;

к) для каждого x вычислить y по формуле:

.

3.8 Проверить, есть ли среди значений элементов последовательности (i=1,2,…,n) хотя бы один отрицательный элемент?

3.9 Вычислить s-сумму квадратов всех целых чисел, попадающих в интервал (lnx,), x>1.

3.10 Вычислить:

a) sin(x); б) sin (x); в) sinsin…sin(x);

г) ;

д) ;

е) 1!+2!+…+n!; ж)

3.11 Подсчитать количество цифр и сумму цифр в десятичной записи целого неотрицательного числа n.

3.12 Напечатать в виде символов цифры целого неотрицательного числа n.

3.13 Напечатать чётные цифры в десятичной записи целого неотрицательного числа n.

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

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

3.16 В десятичной записи целого неотрицательного числа n поменять местами две последние цифры (например, после замены цифр в числе 1257 получаем число 1275).

3.17 Найти старшую цифру целого неотрицательного числа (так в числе 1359 старшая цифра 1).

3.18 Проверить, являются ли одинаковыми начальная и последняя цифры целого неотрицательного числа n.

3.19 Проверить, состоит ли целое неотрицательное число из одинаковых цифр.

3.20 Вычислить x с заданным номером n, если задана формула

и

3.21 Вычислить x и y с заданным номером n, если заданы формулы

3.22 Составить программу нахождения , если заданы x, n и формулы:

, .

3.23 Вычислить n-ый член последовательности, определяемый по формулам:

а) ;

б) .

4 ВЫЧИСЛЕНИЕ СУММ КОНЕЧНЫХ И БЕСКОНЕЧНЫХ РЯДОВ, ИТЕРАЦИОННЫЕ ЦИКЛЫ

При нахождении суммы ряда следует использовать рекуррентную формулу для нахождения следующего члена ряда (если рекуррентная зависимость существует).

Например, требуется найти сумму ряда с точностью , общий член которого .

Для получения рекуррентной формулы вычислим отношение следующего члена к предыдущему:

,

откуда

.

При составлении программы будем считать, что точность достигнута, если .

Program six;

Var sum, an, e :real;

N :integer;

Begin

Readln(e);

Sum:=0;

N:=1;

an:=1/3;

While an>e do

Begin

Sum:=sum+an;

Inc(n);

an:=an*(n+1)/2/(2n+1)

End;

Writeln(‘сумма=’, sum)

End

.

Если в условии задачи задаётся количество слагаемых в сумме ряда, то используют цикл for.

Program seven;

Var sum, an, e :real;

I, N : integer;

Begin

Readln(e, n);

an:=1/3;

Sum:=an;

For i:=2 to n do

Begin

an:=an*(i+1)/2/(2i+1)

Sum:=sum+an;

End;

Writeln(‘сумма=’, sum)

End.

В задачах нахождения предела последовательности используют цикл repeat – until.

Например, требуется вычислить предел последовательности , где , принимая за него такое значение , при котором . Начальное приближение задано .

Program eight;

Var an, an1, e : real;

Begin

Readln(e);

An1:=1;

Repeat

an:=an1; {запомнить предыдущее значение}

an1:=(2-an*an*an)/5 {вычислить следующее значение }

Until abs(an1-an) < e;

Writeln(‘предел равен’, an1)

End.

ЗАДАНИЯ

4.1 Вычислить сумму ряда:

а) ; б)

в)

г)

д) , для

е) ; ж) ;

з) ;

и) ; к) ;

л) ;

м) ;

н) ;

о) ;

п) .

4.2 Вычислить сумму и сравнить с точным значением:

а) 1+3+5+7+9+…+(2n-1)=n

б) 1+8+16+34+32+…+8(n-1)=(2n-1);

в)

4.3 Выполнить вычисления в зависимости от условия:

а) f=

б) f=

в) f=

г) f=

д) f=

е) f=

ж) f=

4.4 Среди членов последовательности, вычисляемых по формулам:

найти для которого выполняется неравенство

<0.0001.

4.5 Описать алгоритм нахождения , x>0 с заданной точностью , пользуясь последовательными приближениями

В качестве начального приближения принять Считать, что требуемая точность достигнута, если выполнено условие

4.6 Описать алгоритм нахождения с заданной точностью , пользуясь последовательными приближениями

В качестве начального приближения принять

.

Считать, что требуемая точность достигнута, если выполнено условие

4.7 Описать алгоритм нахождения с заданной точностью , пользуясь последовательными приближениями

В качестве начального приближения принять

.

Считать, что требуемая точность достигнута, если выполнено условие

4.8 Описать алгоритм нахождения с заданной точностью , пользуясь последовательными приближениями

В качестве начального приближения принять заданное значение .

Считать, что требуемая точность достигнута, если выполнено условие

4.9 Вычислить сумму, прекратив вычисления, когда очередной член суммы по абсолютной величине станет меньше . Вычислить точное значение суммы. Близость точного значения и суммы указывает на правильность вычислений:

а)

б)

в)

г)

д)

е)

ж)

з)

и)

к)

4.10 При заданном значении x и вычислите сумму , прекратив вычисления, когда очередной член суммы по абсолютной величине станет меньше . При том же значении x вычислите функцию y(x). Близость значений и y(x) указывает на правильность вычислений:

а) ; y(x)=;

б) ; y(x)=;

в) ; y(x)=;

г) ; ;

д) ; ;

е) ; ;

ж) ; y(x)=;

з) ; ; [x<1]

и) ; [x<1]

к.1) [x<1]

к.2) [x>1]

к.3) [x<-1]

к.4)

[x<]

л.1)

л.2)

л.3)

л.4)

л.5)

м)

н)

о)

п.1)

п.2)

п.3)

р.1)

р.2)

р.3) с.1) c.1) с.2)

т.1)

т.2)

4.11 Член ряда с номером n(n=1, 2, 3, …) определяется выражением:

а) б) в)

г) д) е)

Для каждого из этих случаев написать программу вычисления:

1) суммы m членов;

2) суммы членов ряда, включая первый член, меньший .

(n!! означает произведение всех натуральных чисел, не превышающих n, той же чётности, что и n).

4.12 Составьте программу для вычисления суммы s(x) с заданной точностью и функции y(x) для x в диапазоне от 0 до 1 с произвольным шагом h. Выведите на экран таблицу значений функции y(x) и её разложение в ряд s(x). Близость значений y(x) и s(x) во всём диапазоне значений x указывает на правильность их вычисления.

а)

б)

в)

г)

д)

е)

ж)

з)

и)

к.1)

к.2)

к.3)

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

а.1)

а.2)

а.3)

б)

в.1)

в.2)

в.3)

г)

д)

5 ПРОЦЕДУРЫ И ФУНКЦИИ

Структура процедур и функций аналогична структуре полной программе на языке ПАСКАЛЬ. В процедурах и функциях могут быть описаны собственные константы, типы, собственные переменные, метки и даже собственные процедуры и функции.

Опишем функцию schet для подсчёта количества указанной цифры в целом положительном числе. В программе во введённом с терминала числе подсчитаем сначала количество нулей, а потом – количество единиц.

Program nine;

Const nul=0;

Var x : integer;

Function schet(n : integer; c : byte) : byte;

Var k, a : byte;

Begin

K:=0;

While n<>0 do

Begin

a:=n mod 10;

n:=n div 10;

If a=c then

Inc(k)

End;

Schet:=k

End;

Begin

Readln(x);

Writeln(‘количество нулей=’,schet(x,nul));

Writeln(‘количество единиц=’,schet(x,1));

End.

Функция имеет два входных параметра: n – обозначает число, с – цифру (оба параметра – параметры-значения). Фактический параметр, соответствующий формальному n, в обоих вызовах функции задаётся именем x. Фактический же параметр, соответствующий формальному с, при первом вызове функции задаётся именем константы, а при втором вызове – в явном виде.

Продемонстрируем теперь использование процедуры с параметрами. Опишем процедуру нахождения корней квадратного уравнения.

Program ten;

Var a, b,c, x1,x2:real;

F:Boolean;

N, i:imteger;

Procedure korni(a, b,c:real; var x1,x2:real; var t:Boolean);

Var d:real;

Begin

d:=b*b-4*a*c;

If d>=0 then

Begin

T:=true;

d:=sqrt(d);

X1:=(-b+d)/(2*a);

X2:=(-b-d)/(2*a);

End

Else

Begin

T:=false;

X1:=-b/(2*a);

X2:=d/(2*abs(a)

End

End;

Begin

Readln(n);

For i:=1 to n do

Begin

Readln(a, b,c);

If a<>0 then

Begin

Korni(a, b,c, x1,x2,f);

If f then

Begin

Write(‘корни действительные’);

Writeln(‘x1=’,x1,’ x2=’,x2)

End

Else

Begin

Write(‘корни комплексные’)

Writeln(‘x1=’,x1,’+’,x2,’*I’,

‘ x2=’,x1,’-‘,x2,’*I’)

End

End

Else

Writeln(‘a=0’)

End

End.

Процедура korni имеет 6 формальных параметров: a, b, c - входные параметры (параметры-значения), x1, x2, t – выходные параметры (параметры-переменные), через которые передаются в основную программу корни уравнения и тип корней. Для того чтобы результаты работы процедуры korni были доступны в программе, они передаются по ссылке.

Покажем использование процедуры без выходных параметров на примере разложения натурального числа на простые множители. Потребуем от программы, чтобы она могла обрабатывать последовательности чисел (признак конца – 0).

Program eleven;

Var a : integer;

Procedure mnojit( x:integer);

Var m:integer;

Begin

m:=2;

While m<=x do

If (x mod m)=0 then

Begin

Write(‘ ‘,m);

X:=x div m

End

Else

Inc(m)

End;

Begin

Read(a);

While a<>0 d0

Begin

Writeln(‘разложение числа ‘, a,’ на простые множители');

Mnojit(a);

Writeln;

Read(a)

End

End.

Процедура mnojit имеет только один входной параметр. Результат (простые множители числа) выдаётся на экран при выполнении процедуры.

ЗАДАНИЯ

5.1 Описать процедуру вычисления суммы и произведения трёх заданных чисел. В основной программе ввести n троек чисел, для каждой тройки вычислить сумму и произведение.

5.2 Описать функцию вычисления целой степени вещественного числа. В основной программе ввести n вещественных чисел, каждое число возвести в степень, равную его номеру.

5.3 Описать функцию, вычисляющую НОД двух целых чисел:

а) применяя алгоритм Эвклида;

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

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

5.4 Описать функцию получения произведения двух натуральных чисел без использования операции ‘*’. В основной программе использовать её для вычисления n!.

5.5 Описать процедуру деления натурального числа x на натуральное число y, обозначить целое частное через q, а остаток через r. Операции div и mod не использовать. Использовать процедуру для перевода n целых чисел меньших 64 в восьмеричную систему счисления.

5.6 Описать функцию, которая проверяет, содержит ли заданное целое положительное число чётное количество цифр. В основной программе выполнить указанную проверку для последовательности чисел (0 – признак конца последовательности).

5.7 Описать процедуру деления каждого из трёх чисел на минимальное значение из них. В основной программе ввести n троек чисел, каждую тройку разделить на минимальное число.

5.8 Описать функцию проверки в целом положительном числе совпадения младшей и старшей цифр. В основной программе выполнить указанную проверку для последовательности чисел (отрицательное число – признак конца последовательности).

5.9 Описать функцию перестановки в заданном целом положительном числе двух младших цифр. В последовательности из n целых чисел выполнить замену для чисел больших 9.

5.10 Описать функцию вычисления . В основной программе ввести m пар (n, x), для каждой пары вычислить сумму и напечатать.

5.11 Описать функцию sum(n) – функцию вычисления суммы степеней

(1/1)+(1/2)+…+(1/n). В основной программе организовать вычисления для k от 1 до заданного m.

5.12 Описать функцию подсчёта количества цифр отличных от нуля в целом положительном числе.

5.13 Описать функцию проверки, являются ли два целых положительных числа чётными и равными.

5.14 Описать функцию, которая в заданном целом положительном числе подсчитывает количество цифр-нулей.

5.15 Описать процедуру, которая в целом положительном числе находит цифру с максимальным значением и её позицию ( номер).

5.16 Описать функцию, которая для целого числа формирует число, записанное в обратном порядке. Использовать её в программе, проверяющей, симметрично ли число относительно своей центральной цифры.

5.17 Описать функцию для вычисления arcsinx (через arctgx), используя формулу:

.

Описать функцию для вычисления arcsinx, используя разложение в ряд:

; [x<1]

В основной программе для n значений х выполнить обе функции ( уменьшать от 0.1 до 0.000001). Сравнить результаты.

5.18 Описать функцию для вычисления arccosx (через arctgx), используя формулу

.

(здесь можно использовать выражение ).

Описать функцию для вычисления arccosx, используя разложение в ряд:

; [x

В основной программе для n значений х выполнить обе функции ( уменьшать от 0.1 до 0.000001). Сравнить результаты.

5.19 Описать процедуру sokr(a, b.c, d) от целых параметров, которая приводит дробь a/b к несократимому виду c/d. Использовать эту процедуру для приведения дроби 1+1/2+1/3+…+1/n к несократимому виду.

5.20 Описать процедуры, реализующие арифметические операции (сложение, вычитание, умножение и деление) над рациональными дробями. Результаты приводить к несократимому виду В основной программе проверить выполнение всех процедур.

5.21 Описать процедуру печати в возрастающем порядке всех трёхзначных чисел, в записи которых нет одинаковых цифр.

5.22 Описать функцию проверки: есть ли среди чисел (i=1,2,…n) хотя бы одно отрицательное число.

5.23 Описать функцию вычисления суммы квадратов тех целых чисел, которые попадают в интервал ( lnx, e), x>1.

5.24 Описать функцию проверки: является число х простым числом. В основной

программе напечатать все простые числа, принадлежащие отрезку [2,n].

5.25 Описать функцию подсчёта количества отрицательных чисел, входящих в начало последовательности из n чисел.

5.26 Описать функцию подсчёта количества трёхзначных натуральных чисел, сумма цифр которых равна n (1).

5.27 Описать функцию подсчёта длины наиболее длинной подпоследовательности из подряд идущих нулей в последовательности из к целых чисел.

5.28 Описать функцию подсчёта количества чисел больших своих соседей в последовательности из к чисел.

5.29 Описать функцию проверки: можно ли построить треугольник со сторонами, длины которых равны a, b, c.

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

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

5.32 Описать функцию проверки: является ли заданное число корнем квадратного уравнения.

5.33 Описать процедуру нахождения коэффициентов квадратного уравнения по заданным двум его корням.

В основной программе для каждой пары корней x и x в последовательности из n пар получить и напечатать коэффициенты квадратного уравнения.

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

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

5.35 Описать процедуру нахождения n-го члена арифметической прогрессии и суммы n его членов, если заданы первый член прогрессии, разность прогрессии и целое n.

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

5.36 Описать функцию вычисления длины отрезка, заданного координатами своих концов. Использовать её в программе проверки лежат ли три точки на одной прямой.

5.37 Описать функцию вычисления площади треугольника по заданным длинам трёх его сторон. Использовать её для определения, какой из двух заданных треугольников имеет большую площадь.

5.38 Описать функцию, проверки, можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами с, d так, чтобы каждая из сторон одного прямоугольника была параллельна или перпендикулярна каждой из сторон второго прямоугольника. Использовать её в программе проверки какой из заданных трёх прямоугольников содержит прямоугольник, который в свою очередь также содержит прямоугольник.

5.39 Составьте программу для вычисления составной функции. Самостоятельно выберите необходимое количество исходных данных для того, чтобы в программе выполнялись все ветви алгоритма. Перед выводом полученного результата программа должна сообщать о ветви, для которой он получен. В качестве f(x) используйте по выбору : или

а)

б)

в)

г)

д)

е)

ж)

з)

СПИСОК ЛИТЕРАТУРЫ

1 Минакова программирования. Учебное пособие / , , . Методы программирования. – М.: Вузовская книга, 2000. –280 с. –ISBN -X.

2 Амелина по программированию. / , , . – М.: Вузовская книга, 2000. –104 с. – ISBN -2.

3 Д. Ван Тассел Стиль, разработка, эффективность, отладка и испытание программ: Пер с англ. – 2-е изд., испр., - М.: Мир, 1985. – 332 с.

4 Задачник по программированию. – СПб.: Питер, 20c. – ISBN - 0.