Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов icon

Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов




НазваниеСборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов
Дата05.06.2014
Размер476.64 Kb.
ТипСборник задач

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ


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

ПЕДАГОГИЧЕСКИЙ УНИВЕРСИТЕТ


Бабенко Т.А., Бельченко В. Е., Козырева Г.Ф.


СБОРНИК ЗАДАЧ ПО КУРСУ

ОСНОВЫ ПРОГРАММИРОВАНИЯ



часть 1

Учебно-методическое пособие для студентов,

обучающихся по специальности "Информатика"







Армавир 2004



Печатается по решению УМС АГПУ


Рецензент : зав.кафедрой ВЭА АМТИ, проф. Куроедов В.И.


Бабенко Т. А., Бельченко В.Е., Козырева Г.Ф. Сборник задач по курсу "Основы программирования": Учебно-методическое пособие для студентов, обучающихся по специальности "Информатика". - Армавир, 2004г.


Рассматриваются типовые задачи и контрольные задания по курсу "Основы программирования". Пособие предназначено для приобретения студентами младших курсов физического, математического факультетов практических навыков алгоритмизации и программирования. Может быть использовано студентами - заочниками для самостоятельного овладения языком программирования Паскаль.

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


© Издательский центр, 2004


ОГЛАВЛЕНИЕ


ВВЕДЕНИЕ 4

^ ОСНОВЫ ПРОГРАММИРОВАНИЯ 3

Армавир 2004 4

C - Cos x 21



ВВЕДЕНИЕ


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

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

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

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

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

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

Пособие содержит примеры решения задач и задачи по программированию на языке Паскаль. Всего предложено 25 вариантов, содержащих по 15 задач и охватывающих следующие темы: линейные программы, операторы выбора и условного перехода, циклы, процедуры, функции пользователя.

К каждому разделу приводятся несколько типовых задач с решениями, что позволяет студентам самостоятельно выполнить типовой расчет.

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

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

1. Номер группы. 2. Фамилия И. О. 3. Номер варианта.

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

На электронных носителях информация должна храниться в виде файлов исходных модулей программ на языке Паскаль. Структура названия файла должна содержать вариант, раздел, номер задачи в виде: вариант_раздел_номер задачи.

Например, для варианта 10, названия файлов имеют вид.


10_1_5.pas

10_1_8.pas

10_1_22.pas

10_2_1к.pas

10_2_5.pas

10_2_17.pas

10_2_22.pas

10_3_4.pas

10_3_11.pas

10_3_15.pas

10_3_21.pas

10_4_10.pas

10_4_20.pas

10_5_10.pas

10_5_20.pas






Проверка типового расчета производится в два этапа.

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

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

Выполнение и защита типового расчета является необходимым условием итоговой аттестации по курсу "Основы программирования"

^ ВАРИАНТЫ ЗАДАНИЙ




варианта

Разделы

I

II

III

IV

V

1

1

6

13



2

8

22

1

7

12

18

1

11

1

11

2

2

7

14



3

9

23

2

8

13

19

2

12

2

12

3

3

8

15



4

10

24

3

9

14

20

3

13

3

13

4

4

9

16



5

11

25

4

10

15

21

4

14

4

14

5

5

10

17



6

12

26

5

11

16

22

5

15

5

15

6

1

11

18



7

13

27

6

7

17

23

6

16

6

16

7

2

12

19



2

14

28

1

8

12

18

7

17

7

17

8

3

6

20



3

15

29

2

9

13

19

8

18

8

18

9

4

7

21



4

16

30

3

10

14

20

9

19

9

19

10

5

8

22



5

17

22

4

11

15

21

10

20

10

20

11

1

9

23



6

18

23

5

7

16

22

1

11

1

11

12

2

10

24



7

19

24

6

8

17

23

2

12

2

12

13

3

11

25



2

20

25

1

9

12

18

3

13

3

13

14

4

12

13



3

21

26

2

10

13

19

4

14

4

14

15

5

6

14



4

8

27

3

11

14

20

5

15

5

15

16

1

7

15



5

9

28

4

7

15

21

6

16

6

16

17

2

8

16



6

10

29

5

8

16

22

7

17

7

17

18

3

9

17



7

11

30

6

9

17

23

8

18

8

18

19

4

10

18



2

12

22

1

10

12

18

9

19

9

19

20

5

11

19



3

13

23

2

11

13

19

10

20

10

20

21

1

12

20



4

14

24

3

7

14

20

1

11

1

11

22

2

6

21



5

15

25

4

8

15

21

2

12

2

12

23

3

7

22



6

16

26

5

9

16

22

3

13

3

13

24

4

8

23



7

17

27

6

10

17

23

4

14

4

14

25

5

9

24



2

18

28

1

11

12

18

5

15

5

15




  1. ^ ЛИНЕЙНЫЕ ПРОГРАММЫ


Типы переменных в Паскале:


INTEGER – целый тип (диапазон -32768...32767)

REAL – действительный, вещественный тип (диапазон 2.9*10-39...1.7*10+38)

CHAR – литерный, символьный тип

BOOLEAN – логический тип

BYTE – целые числа от 0 до 255

LONGINT – целый тип (диапазон -2147483648... 2147483647)

STRING – строковый тип (от 0 до 255 символов)


^ Стандартные операции и функции от скалярных данных.


Функция,

операция

Назначение

Тип

переменных

Тип результата

A+B

Сумма

^ REAL, INTEGER


REAL, INTEGER

A-B

Разность

REAL, INTEGER


REAL, INTEGER

A*B

Произведение

^ REAL, INTEGER


REAL, INTEGER


A/B

Частное

REAL, INTEGER


REAL


ABS(x)

Абсолютное значение

^ REAL, INTEGER


REAL, INTEGER


SQR(x)

Вычисление х2

REAL, INTEGER


REAL,INTEGER

SIN(x)

Нахождение sin x


REAL,INTEGER

REAL

COS (x)

Вычисление cos x


^ REAL, INTEGER

REAL

ARCTAN(x)

Вычисление

arctan x

REAL, INTEGER


REAL


EXP(x)

Вычисление

экспоненты ех

^ REAL, INTEGER


REAL


LN(x)

Вычисление ln x

REAL, INTEGER


REAL


SQRT(x)

Вычисление

^ REAL, INTEGER


REAL


A div B

Нахождение целой части при делении А на B


INTEGER


INTEGER

A mod B

Нахождение остатка при делении А на B

INTEGER

INTEGER


TRUNC(x)

Нахождение целой части х

^ REAL, INTEGER

INTEGER


ROUND(x)

Округление х в сторону ближайшего целого

REAL, INTEGER

INTEGER


PI

Зарезервированная константа число π




REAL


^ Некоторые математические функции, не реализованные в языке Паскаль


В математике

В программировании на языке Паскаль

xn

exp(n*ln(x))

log b a

ln(a)/ln(b)

tg x

sin(x)/cos(x)

ctg x

cos(x)/sin(x)


операторы:

Оператор

Назначение

Синтаксис

Readln

ввод значений с клавиатуры c переводом курсора на новую строку

Readln( перем1, …, перемN)

Writeln

вывод значений на экран c переводом курсора на новую строку

Writeln('Текст')

Writeln(перем1, ..., перемN)

Read

ввод значений с клавиатуры

Read( перем1, …, перемN)

Write

вывод значений на экран

Write('Текст')

Write(перем1, ..,перемN)


примеры решения задач:

Пример 1.

Составить программу расчета значения функции.

Z = |cos х4 – 3 tg х2 |+0.8 sin yх2+ 10 при любых значениях х и у.

Результат вывести в виде: при х= и у=… z=…

Решение

Используемые переменные: x, y -аргументы, z – значение функции

Program pr1;

Var x,y,z: real;

Begin

writeln('введите X Y'); {вывод строки подсказки}

readln (x,y); {ввод аргументов x и y}

z:=abs(cos(sqr(x)*sqr(x)-3*sin(sqr(x))/cos(sqr(x))))+0.8*sin(y*sqr(x))+10;

writeln('при x=',x:8:2,' y=',y:8:2,' z=',z:8:2); {вывод результата}

readln; {задержка до нажатия клавиши Enter}

End.

Результат

введите X Y

1 2

при x=1.00 y=2.00 z=11.59


Пример 2.

Вводится вещественное число а. Не пользуясь никакими арифметическими операциями, кроме сложения, получить 7а за четыре операции.

Решение

Используемые переменные: а –вводимое число,

b, c, d – вспомогательные переменные

Program pr2;

Var a,b,c,d:real;

Begin

write('введите a '); {вывод строки подсказки}

readln (a); {ввод исходного числа}

b:=a+a; {2a}

c:=b+b; {4a}

d:=b+c; {6a}

a:=d+a; {7a}

writeln('7a=',a:8:2); {вывод результата}

readln; {задержка до нажатия клавиши Enter}

End.

Результат

введите a 2

7а= 14.00


Пример 3.

Найти площадь круга и длину окружности.

^ Решение

Используемые переменные: r - радиус, d – длина окружности,

s – площадь круга


Program pr3;

Var d,r,s: real;

Begin

write('введите радиус окружности '); {вывод строки подсказки}

readln (r); {ввод радиуса}

d:= 2*Pi*r; {вычисление длины окружности}

s:=Pi*sqr(r); { вычисление площади круга}

writeln('длина окружности= ',d:4:2); {вывод результата}

writeln('площадь окружности= ',s:4:2);

readln; {задержка до нажатия клавиши Enter}

End.

Результат

введите радиус окружности 5

длина окружности=31.42

площадь окружности=78.54


Пример 4.

Вычисление суммы цифр введенного натурального двузначного числа.

Решение

Используемые переменные: n - двузначное число, a, b – цифры числа

Program pr4;

Var n, a, b: integer;

Begin

write('n= '); readln(n); {ввод исходного двузначного числа}

a:=n div 10; {1-я цифра}

b:=n mod 10; {2-я цифра}

writeln('сумма = ', a+b); {вывод результата}

readln; {задержка до нажатия клавиши Enter}


End.

Результат

n=48

сумма=12


Пример 5.

Введенное 4-значное число изменить так, чтобы 2 и 3 цифры поменялись местами.

Решение:

Program pr5;

Var n,a,b,c,d:integer;

Begin

write('введите n ');

readln (n); {ввод исходного 4-значного числа}

a:=n div 1000; {1-я цифра числа}

b:=n div 100 mod 10; {2-я цифра числа }

c:=n div 10 mod 10; {3-я цифра числа }

d:=n mod 10; {4-я цифра числа}

n:= a*1000+c*100+b*10+d; {получение числа в виде суммы разрядных

слагаемых}

writeln('результат ', n); {вывод результата}

readln; {задержка до нажатия клавиши Enter}

End.

Результат:

введите n 1234

результат 1324


Пример 6.

Обмен значениями переменных x и y.

Решение:

Program pr6;

Var x,y,t: integer;

begin

write('Введите x y '); {вывод строки подсказки}

readln(x,y); {ввод исходных чисел}

t:=x; {в переменную t }

x:=y;

y:=t;

writeln('x=', x, 'y=',y); {вывод результата}

readln; {задержка до нажатия клавиши Enter}

end.

Результат:

Введите x y 3 7

x=7 y=3


Пример 7.

Вычислить значение y = (3tg x 2– ex )/2sin x для х = -34, 0.89, 1.23

Решение:

Program pr7;

Var x,y:real;

Begin

Write('введите x ');

readln (x); {ввод аргумента}

y:=(3*sin(sqr(x))/cos(sqr(x))-exp(x))/(2*sin(x)); {вычисление значения функции}

Writeln('при x=',x:4:2,' y=',y:4:2); {вывод результата}

readln; {задержка до нажатия клавиши Enter}


End.

Результат:

1 случай:

введите x 34

при x=34.00 y=-551389941339996.31


2 случай:

введите x 0.89

при x=0.89 y=0.39


3 случай:

введите x 1.23

при x=1.23 y=25.64


ЗАДАНИЯ


  1. Составить программу расчета значения функции
    Z = |3 ех+3 – 2 ln ху| + 1,8х2 + 1 при любых значениях х и у. Результат вывести в виде: при х= … и у=… z=…

  2. Составить программу расчета значения функции
    Z = tg х3 – |2 sin х2у + 7.8 cos х |+ 10 при любых значениях х и у. Результат вывести в виде: при х= … и у=… z=…

  3. Составить программу расчета значения функции
    Z = (х4 – 2 ctg х2у2 )/| 8х2 – 5 arctg у| при любых значениях х и у. Результат вывести в виде: при х= … и у=… z=…

  4. Составить программу расчета значения функции
    Z = tg х5 – 21 ctg ху2 /(18 sin х – 13 cos у + 11) при любых значениях х и у. Результат вывести в виде: при х= … и у=… z=…

  5. Составить программу расчета значения функции
    Z = (2eх-4 – |sin х2у| )/( 2.1ctg х2 + 10.2) при любых значениях х и у. Результат вывести в виде: при х= … и у=… z=…

  6. Вводится вещественное число а. Не пользуясь никакими арифметическими операциями, кроме умножения, получить a4 за две операции.

  7. Вводится вещественное число а. Не пользуясь никакими арифметическими операциями, кроме умножения, получить a6 за три операции.

  8. Вводится вещественное число а. Не пользуясь никакими арифметическими операциями, кроме умножения, получить a7 за четыре операции.

  9. Вводится вещественное число а. Не пользуясь никакими арифметическими операциями, кроме умножения, получить a8 за три операции.

  10. Вводится вещественное число а. Не пользуясь никакими арифметическими операциями, кроме умножения, получить a9 за четыре операции.

  11. Вводится вещественное число а. Не пользуясь никакими арифметическими операциями, кроме умножения, получить a10 за четыре операции.

  12. Вводится вещественное число а. Не пользуясь никакими арифметическими операциями, кроме сложения, получить 6a за три операции.

  13. Найти произведение цифр введенного 4-значного числа.

  14. Найти сумму цифр введенного 4-значного числа.

  15. Определить сумму квадратов цифр введенного 3-значного числа.

  16. Введено 3-значное число. Вывести число в зеркальном отображении.

  17. Введено 3-значное число. Вывести число в зеркальном отображении

  18. Введенное 4-значное число изменить так, чтобы 1 и 4 цифры поменялись местами.

  19. Найти среднее арифметическое цифр введенного 3-значного числа.

  20. Введено 3-значное число. Поменять местами 1-ю и 3-ю цифры числа.

  21. Введенное 4-значное число изменить так, чтобы 1-3 и 2-4 цифры поменялись местами.

  22. Найти полусумму цифр введенного 4-значного числа.

  23. Определить сумму квадратов цифр введенного 3-значного числа.

  24. Введенное 4-значное число изменить так, чтобы 1 и 3 цифры поменялись местами.

  25. Введенное 4-значное число изменить так, чтобы 3 и 4 цифры поменялись местами.



^ II. ОПЕРАТОРЫ ВЫБОРА И УСЛОВНОГО ПЕРЕХОДА.

операторы:

Оператор

Назначение

Синтаксис

if … then…

проверка

условий

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

if <условие> then <оператор>


case

выбор

case <переменная> of

<константа 1>: <операторы 1>;



< константа n>: <операторы n>

[else <операторы>]

end;

примеры решения задач

Пример 1.

Выбор минимального из трех введенных целых чисел.

Решение:

Program pr1;

Var a, b, c, m: integer;

BEGIN

Write('a, b, c='); readln(a, b, c); {ввод исходных чисел}

if a{выбор минимального из a и b}

if c{сравнение с третьим числом}

writeln('Мin=', m); {вывод результата}

readln

END.

Результат:

1 случай:

a, b, c= 15 6 9

Мin=6


2 случай:

a, b, c= 1 45 4

Мin=1


3 случай:

a, b, c= 25 16 9

Мin=9


Пример 2.

Решение квадратного уравнения вида Ax2 + Bx + C = 0.

Решение:

Program pr2;

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

Begin

Write('a, b, c='); readln(a, b, c); {вводим коэффициенты квадратного

уравнения}

d:=sqr(b)-4*a*c; {вычисляем дискриминант}

if d>0 then begin {если дискриминант положительный, то

вычисляем два корня}

x1:=(-b+sqrt(d))/(2*a); writeln('x1=', x1:6:2);

x2:=(-b-sqrt(d))/(2*a); writeln('x2=', x2:6:2)

end

else if d=0 then begin { иначе, если дискриминант равен 0, то

вычисляем один корень}

x1:=-b/(2*a); writeln('x=', x1:6:2)

end

else writeln('Корней нет'); {иначе выводим сообщение

Корней нет’}

readln

End.

Результат:

1 случай:

a, b, c= 1 -2 1

x= 1.00


2 случай:

a, b, c= 1 -6 8

x1= 4.00

x2= 2.00


3 случай:

a, b, c= 5 1 2

Корней нет


Пример 3.

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

Решение:

Program pr3;

Var a, a1, a2, a3: integer;

Begin

Write('a='); readln(a); {ввод исходного числа}

a1:= a div 100; {1-я цифра}

a2:= (a div 10) mod 10; {2-я цифра}

a3:= a mod 10; {3-я цифра}

if (a1 mod 2=1) or (a2 mod 2=1) or (a3 mod 2=1) {Если 1-я цифра нечетная,

then writeln('Yes') else writeln('No'); или 2-я нечетная, или

^ 3-я нечетная, то выводим ‘Yes’, иначе выводим ‘No’}

readln;

End.

Результат:

1 случай:

a=418

Yes

2 случай:

a=246

No


Пример 4.

Вводятся координаты точки. Определить попадает ли точка в заштрихованную область или нет.




Точка будет принадлежать заштрихованной области, если она лежит внутри большого круга (x2+y2 <25) И, одновременно, за пределами малого круга (x2+y2>4).


Решение:

Program pr4;

Var x,y: real;

Begin

Write('введите x y ');

readln (x,y); {ввод координат точки}

if (sqr(x)+sqr(y)<25) and (sqr(x)+sqr(y)>4)

then writeln('точка попадает в заштрихованную область')

else writeln('точка не попадает в заштрихованную область');

readln;

end.

Результат:

1 случай:

введите x y 1 1

точка попадает в заштрихованную область


2 случай:

введите x y 2 5

точка не попадает в заштрихованную область


Пример 5.

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

Решение:

Program pr5;

Var n,a,b,c,d:Integer;

begin

write('введите n'); readln (n);

a:=n div 1000; b:=n div 100 mod 10;

c:=n div 10 mod 10; d:=n mod 10;

if (a mod 2=0) and (a<8) then a:=a+2 else if a=8 then a:=0;

if (b mod 2=0) and (b<8) then b:=b+2 else if b=8 then b:=0;

if (c mod 2=0) and (c<8) then c:=c+2 else if c=8 then c:=0;

if (d mod 2=0) and (d<8) then d:=d+2 else if d=8 then d:=0;

writeln('результат ',a,b,c,d);

readln;

end.

Результат:

введите n 1824

результат 1046

Пример 6.

    Составить программу, которая выводит меню и выполняет указанные действия с заданными целыми числами:

1 - произведение двух чисел

2 - частное двух чисел

3 - сумма двух чисел


Решение:

program pr6;

var a,b,n: integer;

begin

writeln('1 – произведение двух чисел');

writeln('2 – частное двух чисел');

writeln('3 – сумма двух чисел');

write('введите номер операции ');

readln(n);

write('введите два числа'); readln(a,b);

case n of

1: writeln('произведение=',a*b);

2: writeln('частное=',a/b:4:2);

3: writeln('сумма=',a+b);

else writeln('не верный номер');

end;

readln;

end.

Результат:

1 – произведение двух чисел

2 – частное двух чисел

3 – сумма двух чисел

введите номер операции 2

введите два числа 3 5

частное=0.60


Пример 7.

Ввести первую букву времени года и вывести соответствующее название времени года на русском языке.

Решение:

Program pr7;

Var N: char;

Begin writeln ('введи первую букву времени года ');

Readln (N);

Case N of

'з' : writeln ('зима');

'в': writeln ('весна');

'л': writeln('лето');

'о': writeln('осень')

end.

Результат:

введи первую букву времени года о

осень

ЗАДАНИЯ

1. Вводятся координаты точки. Определить попадает ли точка в заштрихованную область или нет.


б)

а)

г)

в)

2




д) е)


x


x


2





y=-x2




з)

y

y

y
ж)


x2+y2=4




x


2


y







y


x2+y2=4







и) к)


4

2


x

4

x

2. Введено трехзначное число. Найти сумму четных цифр.

  1. Введено четырехзначное число. Содержится ли в записи этого числа цифра 7?

  2. Введено четырехзначное число. Найти среднее арифметическое нечетных цифр.

  3. Введено трехзначное число. Если в записи числа встречается цифра 5, то записать число в зеркальном отображении.

  4. Введено трехзначное число. Если сумма его цифр нечетна, то увеличить число вдвое.

  5. Введено четырехзначное число. Найти сумму цифр, кратных 3-м.

  6. Вводятся Х и Y. Если хотя бы одно из этих чисел положительно, то найти их произведение. Иначе – найти их сумму.

  7. Вводятся Х и Y. Если Х больше Y, то произвести их обмен.

  8. Из чисел A, B, C, D выбрать максимальное.

  9. Даны три действительных числа. Возвести в квадрат те из них, значения которых неотрицательны.

  10. Даны два числа А и B. Выяснить, делиться ли A на B.

  11. Вводится число. Если оно положительное, то уменьшить его в 10 раз.

  12. Вводятся X и Y. Заменить большее из этих чисел разностью большего и меньшего.

  13. Определить, принадлежит ли введенное Х интервалу (-10, 15)?

  14. Вводится натуральное Х. если оно четное, то уменьшить его вдвое, если нечетное – увеличить на 10.

  15. Вводятся X и Y. Заменить меньшее из них суммой этих чисел.

  16. Из чисел A, B, C, D выбрать минимальное.

  17. Определить, сколько среди заданных чисел A, B, C, D отрицательных.

  18. Сколько среди заданных чисел A, B, C, D нечетных.

  19. Сколько среди заданных чисел A, B, C, D четных.

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

1 - сумма двух чисел

2 - разность двух чисел

3 - конец работы

    23. Составить программу, которая по введенной начальной букве выводит название цветов радуги (красный, оранжевый, желтый, зеленый, голубой, синий, фиолетовый).

  1. Составить программу, которая выводит меню и при нажатии нужной цифры вычисляет соответствующее выражение:

1 - y= x3 + x

2 - y= (x +1)2

3 - y=


  1. Составить программу, которая по введенному порядковому номеру выводит название дня недели.

  2. Составить программу, которая позволяет ввести номер месяца и вывести его название.

  3. Составить программу, которая выводит меню и при нажатии вводе цифры вычисляет соответствующее выражение:

  1. - y= (a+b)2

  2. - y= a2-b2

  3. - y= 1/(a+b)




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

Т - Tg x

S - Sin x
^

C - Cos x


  1. Составить программу, которая по введенной заглавной букве выводит название столиц мира: Москва, Париж, Лондон, Рим.

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

A - Abs x
^

S - Sin x


C - Cos x


III. ЦИКЛЫ


операторы:

Оператор

Назначение

Синтаксис

For

Цикл

с параметром

For <перем>:=<начальное знач> to <кон.знач> do <оператор>;

Значение переменной изменяется от начального значения к конечному с шагом 1.

For <перем>:=<нач. знач> downto <конеч. знач> do <оператор>;

Значение переменной изменяется от начального значения к конечному с шагом -1

While

Цикл

с предусловием

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

Цикл выполняется, пока условие истинно.

Repeat

Until

Цикл

с постусловием

Repeat

<Операторы>;

Until <условие>;

Цикл выполняется, пока условие ложно.


Пример 1.

Вывести квадраты первых десяти натуральных чисел.


Решение:

Program pr1;

Var i, x: integer;

begin

for i:=1 to 10 do begin {перебираем натуральные числа от 1 до 10}

x:=sqr(i); {возводим очередное число в квадрат}

write(x, ' '); {выводим полученное значение}

end;

readln

end.

Результат

1 4 9 16 25 36 49 64 81 100


Пример 2.

Найти сумму 1 + 1/3 + 1/5 +...(N слагаемых).

Решение:

Program pr2;

Var I, N: integer;

S: real;

begin

Write('N='); Readln(N); {вводим количество слагаемых}

S:=0; {обнуляем сумму}

For I:=1 to N do {выполняем цикл N раз, добавляя к сумме по од ному слагаемому}

S:=S+1/(2*I-1);

Writeln('S=',S:5:2); {выводим значение суммы с двумя десятичными знаками}

Readln

end.

Результат:

N=4

S= 1.68

Пример 3.

Дано натуральное число n. Найти сумму S=1+2/3+3/7... (n слагаемых)

Решение:

Program pr3;

var i,b,n:integer;

s:real;

begin

write('Введите n ');

readln(n);

s:=1;

b:=3;

for i:=2 to n do

begin

s:=s+ i/b;

b:=b+4;

end;

writeln('сумма=',s:4:2);

readln;

end.


Результат:

Введите n 5

сумма=2.79


Пример 4.

Дано натуральное число n. Вычислить 31+32+…...+3n

Решение:

program pr4;

var i,n:integer;

s:real;

begin

write('введите n ');

readln(n);

s:=0;

for i:=1 to n do

s:=s+ exp(i*ln(3));

writeln('сумма=',s:4:0);

readln;

end.





Результат:

введите n 5

сумма= 363


Пример 5.

Найти сумму ряда: S = x - x2 /4 + x3/9 - x4/16... (n слагаемых).

Решение:

Program Pr5;

Var i, n, z: integer;

p, s: real;

begin

writeln ('введите n'); readln ( n );

writeln('введите x'); readln( x );

z:=1; p:=x; s:=0;

for i:=1 to n do begin

s:= s + z*p/sqr(i); p:=p*x; z:=-z

end;

writeln ('S=', S :6:2);

readln

end.


Пример 6.

Вычислить произведение:

(1 + sin2 )*(2 + sin3 )*... (n сомножителей).

Найти сумму ряда: S = x - x2 /4 + x3/9 - x4/16... (n слагаемых).

Решение:

Рrogram Pr6;

Var n, i: integer;

p: real;

begin

write('n='); readln(n); p:=1;

for i:=1 to n do

p:=p* (i + sin(i+1));

writeln('p=', p:6:3);

readln

end.

Результат:

n=5

p=131.645


Пример 7.

Задана арифметическая прогрессия -21; - 16;… Определить номер первого положительного члена прогрессии.

a – очередной член прогрессии, n – его порядковый номер

Решение:

Program Pr7;

var

a, n: integer;

begin

a:= -21; n:=1; {задаем начальные значения}

while a<=0 do begin {пока очередной член прогрессии меньше либо ра

a:=a+5; n:=n+1; равен 0, вычисляем следующий член прогрессии и end; и его порядковый номер}

writeln(‘n=’, n); {выводим номер 1-го положительного члена

прогрессии}

readln;

end.

Результат:

n=6

Пример 8.

Протабулировать функцию y:=sin(x)*x интервале [-/2,/2] с шагом /10.

Решение:

Program pr8;

Var x, y: real;

begin

x:=-pi/2;

while x<=pi/2 do

begin

y:=sin(x)*x;

writeln('x=',x:8:2,' y=',y:8:2);

x:=x+pi/10

end;

end.


Пример 9.

Вычислить сумму:

S =cos(1+x)+cos2(1+x)+cos3(1+x)+...+cosn(1+x) (n слагаемых).

Решение:

Рrogram Pr9;

Var n, i: integer;

s,x,t: real;

begin

write(' n='); readln(n);

write(' x='); readln(x);

s:=0; t:=cos(1+x);

for i:=1 to n do begin

s:=s+t;

t:=t*cos(1+x);

end;

writeln('s=', s:4:2)

end.


Пример 10.

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

Решение:

Program Pr10;

Var n, a, b, k: integer;

begin

k:=0; for n:=10 to 99 do begin

a:= n div 10; b:=n mod 10;

if (a+b) mod 2=1 then k:=k+1;

end;

writeln('k=',k)

end.


ЗАДАНИЯ


1. Дано натуральное число n. Вычислить 21+22+…+2n .

  1. Дано натуральное число n. Вычислить n! ()

  2. Дано натуральное число n. Вычислить .

  3. Дано натуральное число n и действительно число х. Вычислить .

  4. Даны натуральные числа а, n. Вычислить .

  5. Найти произведение: Р = (1 + х)·(3+2х)·(5+3х)·... . (n множителей)

  6. Задана арифметическая прогрессия. 7,6; 6,3; … . Сколько членов прогрессии нужно сложить, чтобы полученная сумма стала <0.

  7. Задана арифметическая прогрессия 2; 2,8; … . Сколько членов прогрессии нужно сложить, чтобы полученная сумма стала >20.

  8. Задана арифметическая прогрессия. 7,1; 5,3; … . Сколько членов прогрессии нужно сложить, чтобы полученная сумма стала <0.

  9. Задана арифметическая прогрессия. 8,4; 6,2 … . Сколько членов прогрессии нужно сложить, чтобы полученная сумма стала <0.

  10. Задана арифметическая прогрессия. 2; 3,8; ... . Сколько членов прогрессии нужно сложить, чтобы полученная сумма стала >30.

  11. Подсчитать количество и сумму четных трехзначных чисел.

  12. Подсчитать сумму двухзначных чисел, сумма цифр которых не превышает 7.

  13. Подсчитать количество двузначных чисел, кратных 3.

    15.Подсчитать сумму двузначных чисел, сумма цифр которых не превышает 10.

    16. Подсчитать количество и сумму трехзначных чисел, кратных 3.

    17. Подсчитать количество и сумму четных трехзначных чисел.

  1. Протабулировать функцию y=x3-1 на интервале [-1,3] с шагом 0.2.

  2. Протабулировать функцию y=x2-1/x на интервале [1,2] с шагом 0.05.

  3. Протабулировать функцию y= sin x – cos x на интервале [-,] с шагом /10.

  4. Протабулировать функцию y= cos(x)*x на интервале [-,] с шагом /10.

  5. Протабулировать функцию y=sin2x на интервале [0,] с шагом /20.

  6. Протабулировать функцию y= cos x2+sin x2 на интервале [-/2,/2] с шагом /10.

  7. Дано натуральное число n. Найти сумму S=1-3+5-… . (n слагаемых)

  8. Дано натуральное число n. Найти сумму S=1+2/3+3/5 ... . (n слагаемых)

  9. Дано натуральное число n. Найти сумму S=1-1/5+1/9-1/13+… . (n слагаемых)

  10. Дано натуральное число n. Найти сумму S=1-3+5-… . (n слагаемых)



^ IV. ПРОЦЕДУРЫ


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

^ Структура процедуры:

Procedure <имя_процедуры>(<параметры>); -заголовок процедуры

Label <метки>;

Const <константы>; раздел объявления меток, констант, типов данных,

Type <типы данных>; переменных (может отсутствовать)

Var <переменные>;

Begin

<операторы > - тело процедуры

End;

Параметры, указанные в заголовке процедуры называются формальными. Вызов процедуры осуществляется из основной программы указанием ее имени. При вызове процедуры формальные параметры заменяются фактическими. Количество и тип формальных и фактических параметров должны совпадать. Для передачи исходных данных в процедуру используются параметры-значения. Фактические параметры-значения могут быть константами, переменными, выражениями. Полученный в процедуре результат передается в основную программу с помощью параметров-переменных. В заголовке описания процедуры перед параметрами-переменными пишется Var.


Пример 1.

Создать процедуру вычисления среднего арифметического и среднего квадратичного натуральных чисел a и b.


Решение:

Program pr1;

Var

a, b: integer;

SrAr, SrKv: real; {SrAr- среднее арифметическое, SrKv – среднее квадратичное}

Procedure Sredn(a,b:integer; Var SrAr, SrKv: real);

{a,b – входные данные (параметры-значения}

{SrAr, SrKv – результат выполнения процедуры (параметры-переменные)}

Begin {тело процедуры}

SrAr:=(a+b)/2;

SrKv:=SQRT(a*b);

End;

BEGIN {основная программа}

Write('a='); Readln(a); {ввод a}

Write('b='); Readln(b); {ввод b}

{вызов процедуры и передача фактических параметров a,b }

Sredn(a, b, SrAr, SrKv);

{вывод результата, полученного в процедуре}

Writeln(‘Ср. арифм.=', SrAr:6:2, ' Ср. квадр.е =', SrKv:6:2);

Readln;

END.


Результат:

a=2

b=8

Ср. арифм.= 5.00 Ср. квадр.= 4.00


Пример 2.

Создать процедуру для вычисления периметра и площади прямоугольного треугольника по его катетам a, b.


Решение:

Program pr2;

Var

a, b, p, s: real; { a, b- катеты, p - периметр, s - площадь }

Procedure Treug(a,b: real; Var p, s: real);

{a, b- входные данные(параметры-значения),} {p, s-выходные данные(параметры-переменные)}

Begin

p:= a + b + Sgrt(a*a + b*b); {периметр треугольника с катетами a, b}

s:= a*b/2; { площадь треугольника с катетами a, b }

End;

Begin {основная программа}

Write('a, b =');Readln(a, b); {ввод исходных данных}

Treug(a, b, p, s); {вызов процедуры и передача исходных данных a, b}

Writeln('p=', p:4:1, ‘ s=’, s:4:1); {вывод результата, полученного из процедуры}

Readln;

End.


Результат:

a, b= 3 4

p=12.0 s= 6.0


Пример 3.

Создать процедуру, определяющую возможность построения треугольника со сторонами x, y, z. Из чисел a,b,c,d выбрать тройки таких, которые позволяют построить треугольник.

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

Решение:

Program pr3;

Var

a,b,c,d: integer;

Procedure Treug(x, y, z:integer);

Begin

if (x
then writeln (‘Треугольник со сторонами ‘, x, ‘,’, y, ‘,’, z, ’можно построить’)

else writeln(‘Треугольник со сторонами ’ x, ‘,’, y, ‘,’, z, ‘нельзя построить ‘)

End;

Begin {основная программа}

Write('Введите a b c d: '); Readln(a,b,c,d); {ввод исходных данных}

{вызываем процедуру и проверяем возможность построения треугольника со сторонами a,b,c}

Treug(a,b,c);

{вызываем процедуру и проверяем возможность построения треугольника со сторонами a,b,d}

Treug(a,b,d);

{вызываем процедуру и проверяем возможность построения треугольника со сторонами a,c,d}

Treug(a,c,d);

{вызываем процедуру и проверяем возможность построения треугольника со сторонами b,c,d}

Treug(b,c,d);

Readln;

end.


Результат:

Введите a b c d: 1 3 4 5

Треугольник со сторонами 1,3,4 нельзя построить

Треугольник со сторонами 1,3,5 нельзя построить

Треугольник со сторонами 1,4,5 нельзя построить

Треугольник со сторонами 3,4,5 можно построить


Пример 4.

Упорядочить по возрастанию числа A, B, C, создав процедуру обмена значениями 2-х переменных.

Решение:

Program pr4;

Var

A, B, C: real;

Procedure Obmen(Var X,Y:real);

{X,Y являются и входными, и выходными данными}

Var

T: real; { T –вспомогательная переменная}

Begin

T:=X;

X:=Y;

Y:=T;

End;

begin {основная программа}

Write('A, B, C ='); Readln(A,B,C); {ввод исходных данных}

If A>B then Obmen(A,B); {если A больше B, то производим их обмен}

If A>C then Obmen(A,C); {если A больше С, то производим их обмен}

If B>C then Obmen(B,C); {если В больше С, то производим их обмен}

Writeln('A=', A:5:2,' B=', B:5:2,' C=', C:5:2); {вывод результата}

Readln;

end.


Результат:

A, B, C = 6 18 3

A= 3.00 B= 6.00 C= 18.00


Пример 5.

Создать процедуру для вывода первых N членов арифметической прогрессии, заданной значением первого члена а и разностью d. Вывести первые 7 членов прогрессии 2, 5, … (a=2, d=3) и первые 10 членов прогрессии 20, 19, ….(a=20, d= -1)

Решение:

Program pr5;

Procedure progres(a,d,n:integer);

Var

i: integer; {i – номер очередного члена прогрессии }

Begin

for i:=1 to n do {перебираем i от 1 до n}

begin

write(a,' '); {выводим очередной член прогрессии}

a:=a+d; {вычисляем следующий член прогрессии}

end;

End;

begin {основная программа}

{вызов процедуры для вывода 7 членов арифметической прогрессии 2, 5,…}

progres(2,3,7);

writeln;

{вызов процедуры для вывода 10 членов прогрессии 20,19,…}

progres(20,-1,10);

Readln;

end.


Результат:

2 5 8 11 14 17 20

20 19 18 17 16 15 14 13 12 11


Пример 6

Выяснить, какие натуральные числа от 2 до 10 являются простыми, а какие - составными (создать процедуру, определяющую простым или составным является данное число).

Число называется простым, если оно не имеет делителей кроме 1 и самого себя. Если у него есть другие делители, то число – составное.

Решение:

Program pr6;

Var

i: integer;

Procedure prostoe(x:integer);

Var

k,n: integer; {n - возможные делители числа, k – количество делителей}

Begin

k:=0;

for n:=2 to x div 2 do {перебираем числа от 2 до x div 2 для поиска делителей}

if x mod n = 0 {если n –делитель числа x}

then k:=k+1; {увеличиваем количество делителей на 1}

if k=0 {если у числа нет делителей}

then writeln (x,' - prostoe') {то число простое}

else writeln (x,' - sostavnoe'); {иначе число составное}

End;

begin {основная программа}

for i:=2 to 10 do {перебираем числа от 2 до 10}

prostoe(i); {вызываем процедуру для проверки очередного числа}

Readln;

end.


Результат:

2 - prostoe

3 - prostoe

4 - sostavnoe

5 - prostoe

6 - sostavnoe

7 - prostoe

8 - sostavnoe

9 - sostavnoe

10 - sostavnoe


ЗАДАНИЯ


  1. Создать процедуру для вычисления периметра и площади квадрата по длине его стороны.

  2. Создать процедуру для вычисления объема и площади поверхности куба по длине его ребра.

  3. Создать процедуру для вычисления длины окружности и площади круга по заданному значению радиуса. ( L= 2R, S=R2)

  4. Создать процедуру для вычисления периметра и площади прямоугольника по длинам его сторон.

  5. Создать процедуру для вычисления периметра и площади треугольника по длинам его сторон (, a, b, c – стороны треугольника, p – полупериметр)

  6. Создать процедуру для нахождения корней квадратного уравнения по его коэффициентам a,b,c.

  7. Вводятся A, B, C, D. Поменять местами A и C, B и D, создав процедуру обмена значениями 2-х переменных.

  8. Создать процедуру для вывода первых N членов арифметической прогрессии, заданной первым членом а и разностью d. С помощью этой процедуры вывести 8 первых членов прогрессии 1, 4, … и 10 первых членов прогрессии 24, 22, ….

  9. Создать процедуру для вывода первых N членов арифметической прогрессии, заданной первым членом а и разностью d. С помощью этой процедуры вывести 5 первых членов прогрессии 3, 7, … и 7 первых членов прогрессии 14, 11, ….

  10. Создать процедуру для вывода первых N членов арифметической прогрессии, заданной первым членом а и разностью d. С помощью этой процедуры вывести 7 первых членов прогрессии 12, 10, … и 9 первых членов прогрессии 2, 5, ….

  11. Создать процедуру для вывода и нахождения суммы первых N членов арифметической прогрессии, заданной формулой an=2n+1.

  12. Создать процедуру для вывода и нахождения суммы первых N членов арифметической прогрессии, заданной формулой an=3n-2.

  13. Создать процедуру для вывода и нахождения суммы первых N членов арифметической прогрессии, заданной формулой an=5n-3.

  14. Определить, какие из целых чисел от -3 до 8 являются решениями неравенства (x-5)(x+1)>0 (создать процедуру, определяющую является или не является данное целое число решением неравенства (x-5)(x+1)>0)

  15. Определить, какие из целых чисел от -10 до 2 являются решениями неравенства (x+4)(x+1)<0 (создать процедуру, определяющую является или не является данное целое число решением неравенства (x+4)(x+1)<0)

  16. Создать процедуру для вывода и подсчета суммы последовательных целых чисел от a до b. С помощью этой процедуры вывести и найти сумму целых чисел: 1) от 10 до 20; 2) от -5 до 15.

  17. Создать процедуру для вывода таблицы значений функции y=sin 3x + 1 для х от a до b с шагом h. Вывести две таблицы: а) для х от 1 до 2 с шагом 0.1 и б) для х от 5 до 10 с шагом 0.5

  18. Создать процедуру для вывода таблицы значений функции y=tg x + 1/x для х от a до b с шагом h. Вывести две таблицы: а) для х от 2 до 4 с шагом 0.2 и б) для х от 1 до 10 с шагом 0.5

  19. Создать процедуру для вывода таблицы значений функции y= 3x2 + 1 для х от a до b с шагом h. Вывести две таблицы: а) для х от 1 до 2 с шагом 0.1 и б) для х от 2 до 5 с шагом 0.5

  20. Создать процедуру для вывода таблицы значений функции y=sin (x + 1)2 для х от a до b с шагом h. Вывести две таблицы: а) для х от 2 до 3 с шагом 0.1 и б) для х от -2 до 3 с шагом 0.5



^ V. ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ


Структура функции:

Function <имя_функции>(<параметры>) : <тип результата>;

Label <метки>;

Const <константы>; раздел объявления меток, констант, типов данных,

Type <типы данных>; переменных (может отсутствовать)

Var <переменные>;

Begin

<операторы, составляющие тело функции>;

End;

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

<имя_функции>:=<значение>.

Вызов функции, определенной пользователем, осуществляется так же, как и любой стандартной функции Паскаля.


Пример 1.

Создать функцию пользователя, вычисляющую х!

Решение:

Program pr1;

Var

x: integer; y: real;

Function Fact(x: integer): real;

Var

i: integer; f: real;

begin

f:=1;

for i:=1 to x do f:=f*i; {вычисляем произведение}

Fact:=f; {имени функции присваиваем полученное значение}

end;

begin {основная программа}

Write (‘x=’); Readln(x); {ввод значения х}

y:=Fact(x); {вызов функции с аргументом х }

Writeln(‘y=’, y:4:0); {вывод результата}

Readln;

end.


Результат:

x= 4

y= 24


Пример 2.

Создать функцию пользователя, вычисляющую гиперболический косинус

gc=

Решение:

Program pr2;

Var x: integer;

y: real;

Function gc(x:integer):real;

begin

gc:=(exp(x)+exp(-x))/2;

end;

begin {основная программа}

Write (‘x=’); Readln(x); {ввод значения х}

y:=gc(x); {вызов функции и присваивание ее значения переменной y}

writeln('Гиперболический косинус=', y:8:4); {вывод результата}

Readln;

end.


Пример 3.

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

Для решения задачи используем формулу Герона , где x, y, z – стороны треугольника, p – полупериметр)

Решение:

Program pr3;

var

a1, b1, с1, s1, a2, b2, с2, s2: real;

{функция вычисления площади треугольника со сторонами x,y,z}

Function PlTr(x ,y, z: real): real;

Var

p: real;

Begin

p:= (x + y + z)/2; {полупериметр треугольника}

PlTr:=Sqrt(p*(p-x)*(p-y)*(p-z));

End;

BEGIN {основная программа}

{ввод исходных данных}

Write('Cтороны 1-го треугольника:'); Readln(a1, b1, c1);

Write('Cтороны 2-го треугольника:'); Readln(a2, b2, c2);

S1:=PlTr(a1, b1, c1);{вызов функции для нахождения площади 1-го треугольника}

S2:=PlTr(a2, b2, c2);{вызов функции для нахождения площади 2-го треугольника}

if S1>S2 then Writeln(‘S1>S2’)

else if S1
else Writeln(‘S1=S2’);

Readln;

END.


Результат:

Cтороны 1-го треугольника:3 4 5

Cтороны 1-го треугольника:6 7 8

S1

Пример 4.

Создать функцию нахождения максимального из двух чисел

Решение:

Program Pr4;

Var

a,b,m:real;

Function Max(a,b:real):real;

begin

if a>b {если a больше b}

then Max:=a {то функция принимает значение a}

else Max:=b; {иначе функция принимает значение b}

end;

BEGIN

write('a,b='); readln(a,b); {ввод исходных данных}

m:=Max(a,b); {вызов функции}

write('Max=',m:5:1); {вывод результата}

readln;

END.


Результат:

a,b=14 9

Max= 14.0


Пример 5.

Создать функцию нахождения наибольшего общего делителя двух натуральных чисел.

Решение:

Program Pr5;

Var

a,b:integer;

Function NOD(a,b:integer):integer;

begin

while a<>b do {пока числа не равны}

if a>b then a:=a-b {заменяем большее из них разностью большего и меньшего}

else b:=b-a;

NOD:=a;

end;

BEGIN

write('a,b='); readln(a,b); {ввод исходных данных}

write('NOD=', NOD(a,b)); {вызов функции и вывод ее значения}

readln;

END.


Результат:

a,b=24 16

NOD=8


Пример 6.

Составить функцию для вычисления xn, где x,n – целые числа

Степень принимает отрицательное значение, если основание степени Х<0 и показатель степени –нечетное число.

Решение:

Program Pr6;

Var

x,n:integer;

Function stepen(x,n:integer):real;

begin

if (n mod 2 <> 0) and (x<0) then stepen:=-exp(n*ln(abs(x)))

else stepen:=exp(n*ln(abs(x)));

end;

BEGIN

write('x,n='); readln(x,n); {ввод исходных данных}

write('stepen=',stepen(x,n):6:2); {вызов функции и вывод ее значения}

readln;

END.


Результат:

1 случай

x,n=2 3

stepen= 8.00

2 случай

x,n=-2 3

stepen= -8.00

3 случай

x,n=2 -2

stepen= 0.25

4 случай

x,n=-2 -2

stepen= 0.25


Пример 7.

Вычислить, используя функцию нахождения знаменателя:

(n слагаемых)

Решение:

Program pr7;

Var s: real;

i, n: integer;

Function Fakt(x: integer): real; {функция вычисления факториала}

Var

i: integer; f: real;

begin

f:=1;

for i:=1 to x do f:=f*i;

Fakt:=f;

end;

Begin

write('n= '); Readln(n); {вводим количество слагаемых суммы}

s:=0;

For i:=1 to n do {перебираем i от 1 до n}

s:=s+i/Fakt(i+1); {добавляем к сумме очередную дробь, вызывая}

{ функцию для вычисления знаменателя}

writeln('s=',s:6:4); {вывод результата}

Readln;

end.


Результат:

n=3

s=0.9583


Пример 8.

Вычислить, используя функцию нахождения знаменателя:

(n слагаемых)

Решение:

Program pr8;

Var s: real;

i, n: integer;

{ функция вычисления суммы первых m натуральных чисел}

Function Sum(m:integer ):integer;

Var

k, S: integer;

begin

S:=0;

for k:=1 to m do

S:=S+k;

Sum:=S;

end;


Begin

write('n= '); Readln(n); {вводим количество слагаемых суммы}

s:=0;

for i:=1 to n do {перебираем i от 1 до n}

s:=s+i*5/sum(i+1); {добавляем к сумме очередную дробь, вызывая}

{ функцию для вычисления знаменателя}

writeln('s=',s:6:4) {вывод результата}

end.

Результат:

n=3

s=4.8333


ЗАДАНИЯ



  1. Найти минимальное из A, B, C, создав функцию выбора минимального из двух произвольных чисел.

  2. Найти максимальное из чисел A, B, C, D, создав процедуру выбора максимального из 2-х произвольных чисел.

  3. Сократить дробь вида a/b (a, b – вводимые натуральные числа), создав функцию для нахождения наибольшего общего делителя двух натуральных чисел.

  4. Найти наибольший общий делитель чисел A, B, C, создав функцию для нахождения НОД двух натуральных чисел.

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

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

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

  8. Вводятся 2 натуральных числа. Найти среднее арифметическое цифр каждого из них (создать функцию для нахождения среднего арифметического цифр произвольного натурального числа).

  9. Вводятся 3 натуральных числа. Найти сумму цифр каждого из них (создать функцию для нахождения суммы цифр произвольного натурального числа).

  10. Вычислить 3-2 + 42 +5-2, создав функцию для вычисления степени.

  11. Вычислить (-32 + 24 )/4-2, создав функцию для вычисления степени.

  12. Найти (a! + b!)/(a+b)!, создав функцию для вычисления факториала произвольного натурального числа.

  13. Найти m! + (m+n)!, создав функцию для вычисления факториала произвольного натурального числа.

  14. Вычислить, используя функцию нахождения знаменателя:

(15 слагаемых)

  1. Вычислить, используя функцию нахождения знаменателя:

... (n слагаемых)

  1. Вычислить, используя функцию нахождения знаменателя:

(n слаг.)

  1. Вычислить, используя функцию нахождения знаменателя:

(15 слаг)


  1. Вычислить, используя функцию нахождения знаменателя:

... (n слагаемых)

  1. Вычислить, используя функцию нахождения знаменателя:

(n слаг.)

  1. Вычислить, используя функцию нахождения знаменателя:

(15 слаг)


ЛИТЕРАТУРА

              1. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие.-М.: «Нолидж», 1999-616с., ил.

        1. Д. Праймс. Программирование на языке Паскаль. Практическое руководство М.: Мир, 1997.

        2. Васюкова Н.Д., Тюляева В.Р. Практикум по основам программирования языка Паскаль. Учебное пособие. М.: Высшая школа. 1991.

        3. Фаронов В.В. Турбо Паскаль 7.0. Практика программирования. Учебное пособие.-М.: «Нолидж», 1999-432с., ил.

        4. Д. Праймс. Программирование на языке Паскаль. Практическое руководство М.: Мир, 1997.

        5. Вирт Н. Алгоритмы и структуры данных. – М.,1989.









Похожие:

Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов iconСборник задач по теории вероятностей : учебно-методическое пособие / Т. А. Андревкина, Е. А. Борисова, Н. А. Иванова, О. В. Назарова, А.
Учебно-методическое пособие предназначено студентам вузов для аудиторной и самостоятельной работы, а также для подготовки к контрольным...
Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов iconУчебно-методическое пособие для студентов, обучающихся по специальности «Информатика»
Учебно-методическое пособие предназначено для студентов, обучающихся по специальности «информатика», а также может использоваться...
Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов iconУчебно-методическое пособие Рекомендовано методической комиссией механико-математического факультета для студентов высших
Г 71 Горяченко В. Д., Пригоровский А. Л., Сандалов В. М. Задачи по теории колебаний, устойчивости движения и качественной теории...
Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов iconУчебно-методическое пособие к практическим занятиям
Кинетика и термодинамика ферментативных реакций: Сборник задач к практическим занятиям /[Текст] / сост. Н. М. Титова. – Красноярск:...
Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов iconУчебно-методическое пособие по дисциплине «делопроизводство в кадровой службе» Для студентов
Вражнова М. Н. Учебно-методическое пособие по дисциплине «Делопроизводство в кадровой службе». – М.: Мади (гту), 2009. – 35 с
Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов iconМетодическое пособие для студентов непсихологических факультетов Уфа 2010 Цели и задачи практики по психологии
Данное методическое пособие состоит из трех разделов
Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов iconУчебно-методическое пособие по курсу "Социология молодёжи" для студентов специальности 040201 "Социология"
Цель настоящего спецкурса состоит в изучении молодежи как социально-демографической группы, особенностей её социализа­ции, роли и...
Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов iconУчебно-методическое пособие статистический анализ и прогнозирование в маркетинге
«География» и является дополнительным к курсу «Основы маркетинга». Предполагает знание студентами основ высшей математики, умение...
Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов iconКонтрольные вопросы и глоссарий. Учебно-методическое пособие предназначено для студентов очной и заочной форм обучения по специальности 080502. 65 Экономика и управление на предприятии (машиностроение)
Учебно-методическое пособие предназначено для студентов очной и заочной форм обучения по специальности 080502. 65 Экономика и управление...
Сборник задач по курсу основы программирования часть 1 Учебно-методическое пособие для студентов iconУчебно-методическое пособие г. Москва 2010
Юдин В. П., Ялина А. В., Иллиев С. П., Петрова Л. А. Профсоюзная статистика. Учебно-методическое пособие. Москва, ООО «Возрождение»,...
Разместите ссылку на наш сайт:
Занятия


База данных защищена авторским правом ©zanny.ru 2000-2014
При копировании материала обязательно указание активной ссылки открытой для индексации.
контакты