Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Подпрограмма типа PROCEDURE






 

При всей похожести, два вида подпрограмм Pascal'я имеют свои различия. Так, любой алгоритм, реализованный Function, можно записать как Procedure, но не наоборот. Function всегда имеет один результат. Procedure может иметь несколько результатов или не иметь их вообще. Function вызывается в основную программу как встроенная функция - в выражении записывается её имя и фактические аргументы, охваченные скобками. Для вызова Procedure используется самостоятельная командная строка, как у встроенных процедур Read и Write, где записывается имя процедуры и фактические параметры, охваченные скобками. Результатом работы Function не может быть массив, множество или файл, а Procedure позволяет это делать.

Заголовок Procedure записывается так:

PROCEDURE < имя> [(V1: < тип1 > [; V2: < тип2 >;...; ] [ VAR V3: < тип3> [; V4: < тип4>;...; ]])];

где

- PROCEDURE - слово, начинающее заголовок этого вида подпрограммы;

- < имя> - название процедуры, составленное программистом по правилам составления идентификаторов;

- V1, V2 - параметры - значения (аргументы процедуры, через которые в процедуру из основной программы передаются значения, служащие исходными данными для расчётов). Они не должны менять своё значение в процедуре;

- VAR - ключевое слово, разделяющее два типа параметров процедуры;

- V3, V4 - параметры - переменные (аргументы процедуры, через которые подпрограмма передаёт выработанные ей результаты в основную программу);

- [ ] - указание на необязательность атрибута.

 

Пример PROCEDURE:

...........................................

PROCEDURE Sum (A, B: Real; VAR S: Real);

Begin

S: = A + B;

End;

....

Здесь переменные A и B являются исходными данными для подпрограммы, а S - результатом. Поэтому перед S в описании стоит слово VAR.

Вызов такой процедуры производится по её имени с употреблением фактических параметров:

Program Proc_Sum;

Var X, Y, Z, T, S1, S2: Real;

PROCEDURE Sum (A, B: Real; VAR S: Real);

Begin

S: = A + B;

End;

BEGIN

Write (‘ Ввести исходные значения X, Y, Z, T = ‘);

Read (x, y, z, t);

Sum (x, y, s1);

Sum (z, t, s2);

WriteLn (' Первая сумма = ‘, S1);

WriteLn (' Вторая сумма = ‘, S2);

END.

 


Задание на контрольную работу

 

Согласно заданного преподавателем варианта берется по одному заданию из каждой темы, при этом должна быть построена блок-схема алгоритма и словесное описание, какие блоки используются.

 

Тема 1.

 

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

 

1. Вычислить площадь поверхности и объем усеченного конуса по следующим формулам

2. Вычислить координаты центра тяжести трех материальных точек с массами и координатами

по формулам:

3. Вычислить площадь треугольника со сторонами a, b, c по формуле Герона:

где p – полупериметр, вычисляемый по формуле (a+b+c)/2.

4. Вычислить координаты точки, делящей отрезок в отношении по формулам:

где .

5. Вычислить медианы треугольника со сторонами a, b, c по формулам:

6. Вычислить площадь круга и длину окружности по введенному значению радиуса.

7. Вычислить площадь S и периметр L эллипса по введенным значениям полуосей a и b:

8. Вычислить объем V и площадь боковой поверхности цилиндра S по введенным значениям радиуса основания R и высоты цилиндра H.

9. Вычислить объем V и площадь боковой поверхности конуса S по введенным значениям радиуса основания r, высоты h и образующей l:

10. Вычислить объем V и площадь поверхности S сферы по введенному значению радиуса r:

11. Дано целое четырехзначное число. Используя операции div и mod, найти сумму его цифр.

12. Дана сторона равностороннего треугольника. Найти площадь этого треугольника и радиусы вписанной и описанной окружностей.

13. Даны координаты трех вершин треугольника (x1, y1), (x2, y2), (x3, y3). Найти его периметр и площадь.

14. Дана длина окружности. Найти площадь круга, ограниченного этой окружностью.

15. Дана площадь круга. Найти длину окружности, ограничивающей этот круг.

 

Тема 2.

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

 

1. Составить программу для решения квадратного уравнения ax2 + bx + c = 0.

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

3. Определить, можно ли из отрезков с длинами х, y и z построить треугольник.

4. Ввести два числа а и b. Большее число заменить утроенным произведением, меньшее – полусуммой.

5. Если среди трех чисел a, b, c имеется хотя бы одно четное, то найти максимальное число, иначе – минимальное.

6. Определить, в каком квадранте находится точка с координатами x и y и вывести номер квадранта на экран.

7. Найти квадрат наибольшего из двух чисел а и b. Вывести на экран число 1, если наибольшим является число а, число 2 – если наибольшим числом является b.

8. Определить, попадает ли точка с координатами x и y в круг радиусом R. Если точка попадает в круг, вывести на экран единицу, в противном случае – ноль.

9. Написать алгоритм решения задачи, которая решает уравнение ax + b = 0 относительно x для любых чисел a и b, введенных с клавиатуры. Все числа считаются действительными.

10. Написать алгоритм решения задачи, которая определяет, лежит ли точка А(х, у) внутри некоторого кольца («внутри» понимается в строгом смысле, т.е. случай, когда точка А лежит на границе кольца, недопустим). Центр кольца находится в начале координат. Для кольца заданы внутренний и внешний радиусы r1, r2. Координаты x и у вводятся с клавиатуры.

11. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной произведение этих значений, а если равны, то присвоить переменным нулевые значения.

12. Даны две переменные целого типа: A и B. Если их значения не равны, то присвоить каждой переменной минимальное из этих значений, а если равны, то присвоить переменным нулевые значения.

13. Даны целочисленные координаты точки на плоскости. Если точка не лежит на координатных осях, то вывести 0. Если точка совпадает с началом координат, то вывести 1. Если точка не совпадает с началом координат, но лежит на оси OX или OY, то вывести соответственно 2 или 3.

14. Даны вещественные координаты точки, не лежащей на координатных осях OX и OY. Вывести номер координатной четверти, в которой находится данная точка.

15. Дано целое число, лежащее в диапазоне от –999 до 999. Вывести строку – словесное описание данного числа вида " отрицательное двузначное число", " нулевое число", " положительное однозначное число" и т.д.

 

Тема 3.

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

 

1. Найти сумму чисел, кратных трем, в диапазоне от 0 до 50.

2. Найти сумму первых десяти чисел, кратных пяти.

3. Найти произведение четных чисел в диапазоне от 2 до 30.

4. Вводятся положительные числа. Прекратить ввод, когда сумма введенных чисел превысит 100.

5. Требуется найти сумму чисел, кратных 7, в диапазоне от 0 до 100. Вывести на экран сумму чисел и их количество.

6. Определить количество целых чисел, кратных 3 (от 3 и далее), дающих в сумме число, превышающее 200.

7. Вводятся 10 чисел. Вывести на экран суммы положительных и отрицательных чисел и их количество.

8. Вывести на экран значения функции у=sin(x) для 0≤ x≤ 180 c шагом в 10.

9. Подсчитать площади десяти кругов с радиусами от 1 см с шагом 2 см и вывести значения площадей на экран.

10. Вводятся положительные числа. Прекратить ввод чисел, когда их сумма превысит 100. Результат вывести на экран.

11. Вводятся числа. Прекратить ввод чисел, когда сумма положительных чисел превысит 100. Результат вывести на экран.

12. Вывести на экран значения произведений чисел a и b. Числа а изменяются от 1 до 11 с шагом 1, b – от 1 до 3 с шагом 0, 2.

13. Вывести на экран таблицу перевода километров в мили в диапазоне от 2 до 20 километров с шагом 2 км.

14. Вы положили в банк 1500 рублей. Определить, сколько денег будет на Вашем вкладе через 1 год, если каждый месяц вклад увеличивается на 0.76 % от суммы предыдущего месяца.

15. Решив заняться легкой атлетикой, Вы пробежали в первый день 2 км. Сколько километров Вы пробежите за 2 недели, если каждый день Вы увеличиваете дистанцию на 10 % от предыдущего дня?


Литература

 

 

1. Касторнов А. Ф. Методическое пособие по курсу " Алгоритмический язык Паскаль". - Череповец, 1995.

2. Касторнова В. А., Касторнов А. Ф. Демонстрационно-обучающий курс “Алгоритмический язык Паскаль”. // Информатика и образование. - 1998. - №2.-С.48-61.

3. Немнюгин С. А. Turbo Pascal: Программирование на языке высокого уровня: Учебник для вузов. – СПб.: Питер, 2007.

4. Павловская Т. А. Паскаль. Программирование на языке высокого уровня: Учебник для вузов. – СПб.: Питер, 2004.

5. Павловская Т. А. Паскаль. Программирование на языке высокого уровня: Практикум. – СПб.: Питер, 2006.

6. Ставровский А. Б. Турбо Паскаль 7.0: Учебник для вузов. – Киев, 2001.

7. Фаронов В. В. Система программирования Delphi. – СПб., 2006.

8. Фаронов В. В. Турбо Паскаль 7.0: Практика программирования: учебное пособие.-М.: ОМД Групп, 2003.

9. Программирование на языке Паскаль: задачник / под ред. Усковой О. Ф. – СПб.: Питер, 2002.

10. Юркин А. Г. Задачник по программированию. – СПб.: Питер, 2002.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.