Среда программирования Turbo Pascal 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Среда программирования Turbo Pascal



ОГЛАВЛЕНИЕ

Лабораторная работа №1 «Выполнение программы простой структуры. Вычисление выражений с использованием стандартных функций» 5

1. Цель задания: 5

2. Теоретические сведения. 5

2.1. Среда программирования Turbo Pascal 6

3. Постановка задачи. 12

4. Варианты заданий. 12

5. Методические указания. 20

6. Содержание отчета. 20

7. Пример выполнения работы и оформления отчета. 20

Лабораторная работа №2 «Основные операторы языка Паскаль». 22

1. Цель работы: 22

2. Теоретические сведения. 22

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

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

2.2.1. Арифметический оператор цикла (цикл с параметром) 22

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

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

3. Варианты.. 22

4. Содержание отчета. 24

5. Пример выполнения работы и оформления отчета. 24

Лабораторная работа №3 «Работа с массивами». 26

1. Цель работы: 26

2. Краткие теоретические сведения: 26

2.1. Понятие массива. 26

2.2. Перебор элементов массива. 26

2.3. Классы задач по обработке массивов. 26

2.4. Сортировка массивов. 27

2.4.1. Сортировка с помощью включения. 27

2.4.2. Сортировка методом простого выбора. 27

2.4.3. Сортировка методом простого обмена. 27

2.4.4. Шейкер –сортировка. 28

2. 5. Поиск в массиве. 28

2. 5.1. Поиск в неупорядоченном массиве. 28

2.5.2. Поиск в упорядоченном массиве (бинарный или дихотомический) 28

3. Постановка задачи: 29

4. Варианты заданий. 29

5. Содержание отчета: 31

6. Пример выполнения работы и оформления отчета. 31

Лабораторная работа №4 «Использование процедур и функций». 33

1. Цель работы: 33

2. Теоретические сведения. 33

2.1. Подпрограммы.. 33

2.2. Параметры.. 33

2.3. Передача результата из подпрограммы в вызывающую программу. 34

2.4. Локальные и глобальные переменные. 34

2.5. Параметры-массивы и параметры-строки. 35

3. Постановка задачи. 35

4. Варианты.. 35

5. Содержание отчета. 36

6. Пример выполнения работы и оформления отчета. 37

Лабораторная работа № 5 «Работа с типизированными и текстовыми файлами». 40

1. Цель работы: 40

2. Краткие теоретические сведения. 40

2.1. Понятие файла. 40

2.2. Стандартные процедуры и функции для работы с файлами. 40

3. Постановка задачи: 41

4. Варианты.. 41

5. Содержание отчета. 45

6. Методические указания к выполнению работы.. 45

Лабораторная работа №1
«Выполнение программы простой структуры. Вычисление выражений с использованием стандартных функций»

1. Цель задания:

1) Выполнение простой программы в системе программирования Turbo Pascal.

2) Приобретение навыков в записи выражений на языке ТР и использование стандартных функций.

Теоретические сведения

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

1) словесное описание (псевдокоды),

2) графическое описание (блок-схемы),

3) алгоритмические языки.

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

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

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

3) Записать алгоритм на требуемом языке программирования (т. е. каждому блоку блок-схемы надо поставить в соответствие оператор языка программирования).

4) Выполнить программу, используя какую-то систему программирования.

5) Выполнить отладку и тестирование программы. При выполнении программы могут возникать ошибки трех типов:

Самыми опасными являются именно семантические ошибки, т. к. их достаточно сложно обнаружить. Программа будет работать, но неправильно, причем, ошибки в ее работе могут возникать не все время, а только при каких-то определенных наборах исходных данных. Для обнаружения таких ошибок выполняется тестирование программы. Набор исходных данных, для которых известен результат, называется тестом. Если результаты работы теста не совпадут с известным значением, значит, в программе имеется ошибка. Тест, выявивший ошибку, считается успешным. Отладка программы заканчивается, когда достаточное количество тестов будет выполнено неуспешно. Самым распространенным критерием для определения количества неуспешных тестов является тестирование ветвей: набор тестов в совокупности должен обеспечить прохождение каждой ветви не менее одного раза.

Начинающие программисты должны обязательно выполнять все указанные этапы. В дальнейшем этапы 2-3 можно объединить в один и сразу записывать программу на требуемом языке программирования.

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

 

 

Структура программы

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

1. Раздел меток;

2. Раздел констант;

3. Раздел типов;

4. Раздел переменных;

5. Раздел процедур и функций;

6. Раздел операторов.

Раздел операторов заключается в операторные скобки begin... end (составной оператор). В нем указывается последовательность действий, которые должны выполняться программой. Все остальные разделы носят описательный характер. Любой раздел, кроме последнего, может отсутствовать. Разделителем между разделами и операторами служит точка с запятой. В конце программы должна стоять точка. В любое место программы могут быть включены комментарии. При этом смысл программы не меняется. Комментарии заключаются в фигурные скобки.

 

 

Стандартные типы данных

Программа, написанная на языке ТР, оперирует некоторыми объектами, называемыми данными. Каждый элемент данных в программе является либо константой, либо переменной. Для каждой переменной задается тип, определяющий возможное значение переменной и операции, которые могут над ней выполняться. Тип переменной задается в разделе переменных.

Turbo Pascal характеризуется разветвленной системой данных (рис. 3.3.)

 


Рис. 3.3. Типы данных в Паскале

Целый тип

Обеспечивает задание целых чисел. Существует несколько целых типов.

Название Длина в байтах Диапазон значений
Byte   0..255
ShortInt   -128..+127
Word   0..65535
Integer   -32768..+32767
LongInt   -2147483648..+2147483647

Стандартные процедуры и функции, применимые к целым типам.

Обращение Тип результата Действие
abs(x) x Возвращает модуль х
chr(b) Char Возвращает символ по его коду
dec(vx[,i]) процедура Уменьшает значение vx на i, при отсутствии i- на 1
inc(vx[,i]) -/- Увеличивает значение vx на i, при отсутствии i- на 1
odd(l) boolean Возвращает TRUE, если аргумент - нечетное число, FALSE - если четное
random(w) как у параметра Возвращает псевдослучайное число, равномерно распределенное на интервале 0<=x<w
sqr(x) -/- Возвращает квадрат аргумента
exp(x) real ex
sqrt(x) real Возвращает квадратный корень из х
sin(x) -/- sin x
cos(x) -/- cos x
ln(x) -/- ln x
arctan(x) -/- arctg x
succ(x) как у параметра Возвращает следующее целое число, т.е. х+1
pred(x) -/- Возвращает предыдущее целое число, т.е. х-1

В таблице используются обозначения: х - выражение любого из типов, b, l, i, w - выражения соответствующих типов: byte, longint, integer, word, vx - переменная типа х.

К данным целых типов применимы следующие арифметические операции: +(сложение),
- (вычитание), * (умножение), / (деление), DIV (деление нацело), MOD (вычисление остатка от целочисленного деления), а также операции отношения: = (равно), <> (не равно), < (меньше), > (больше), <= (меньше или равно), >= (больше или равно).

Вещественный тип

Обеспечивает задание вещественных чисел. Запись вещественного числа в возможна в двух формах:

в виде числа с фиксированной точкой, например 12.3, 0.67;

в виде числа с плавающей точкой: мантисса ×10k, где k- порядок числа, например, 1.4 Е-8, 9.7 Е3.

Существует несколько вещественных типов.

Название Длина в байтах
Real  
Double  
Extended  

Над переменными этих типов определены арифметические операции: + (сложение), -(вычитание), * (умножение), / (деление), а также операции отношения (см. выше).

Стандартные процедуры и функции.

Обращение Тип параметра Тип результата Действие
abs(x) real, integer x Возвращает модуль х
random(x) integer integer Возвращает псевдослучайное число, равномерно распределенное на интервале 0<=i<x
sqr(x) real, integer тип аргумента Возвращает квадрат аргумента
exp(x) real real ex
sqrt(x) real real Возвращает квадратный корень из х
sin(x) -/- -/- sin x
cos(x) -/- -/- cos x
ln(x) -/- -/- ln x
arctg(x) -/- -/- arctg x
frac(x) -/- -/- Дробная часть числа
int(x) -/- -/- Целая часть числа
pi --- real Пи=3.14159265...
trunc(x) real integer Отбрасывание дробной части
round(x) real integer Округление до ближайшего целого
randomize --- --- Инициация датчика псевдослучайных чисел
random --- real Возвращает псевдослучайное число, равномерно распределенное на интервале 0<=x<1

 

Символьный тип

Значениями символьного типа являются элементы конечного и упорядоченного набора знаков. Символ, заключенный в апострофы, обозначает константу символьного типа, например: ‘5’, ‘d’.

Над переменными символьного типа определены следующие функции:

1) функции преобразования:

ORD (s) - дает порядковый номер символа s в упорядоченном множестве символов, например, ORD(‘5’)=53.

CHR (i) - дает символ, стоящий под номером i в упорядоченном множестве символов, например, CHR(66)=‘B’.

2) операции отношения (см. выше):

если С1 и С2 - символьные переменные, то выражение С1>С2 истинно только тогда, когда ORD(C1)>ORD(C2).

3) порядковые функции:

PRED (s) - возвращает предыдущий символ.

SUCC (s) - возвращает следующий символ.

Булевский тип

Переменные булевского типа могут принимать только два значения: TRUE и FALSE. Этот тип относится к порядковым, константы упорядочены: TRUE>FALSE.

Над ними определены:

1) логические операции:

AND(и или конъюнкция), OR(или или дизъюнкция), NOT(не или отрицание).

Таблица истинности для логических операций:

A B A and b A or B Not A
False False False False True
False True False True  
True False False True False
True True True True  

2) операции отношения (см. выше)

Перечисляемый тип

Задается перечислением тех значений, которые может получать переменная этого типа. Нумерация в списке значений начинается с 0, т.е. первое значение имеет номер - 0, а второе - 1 и т.д.

Пример: type tree=(birch, oak, pine);

или

var tr=(birch, oak, pine);

Переменные перечисляемого типа нельзя вводить и выводить с помощью процедур ввода-вывода.

2.3.6. Диапазонный тип

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

Примеры: Type Numbers=0..9;

Letters=’A’..’Z’;

 

Var num:Numbers;

Russ_letter:’А’..’Я’;

 

Выражения

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

Приоритет операций:

Приоритет операций Операции
  NOT
  *, /, MOD, DIV, AND
  +, -, OR
  <, >, <=, >=, <>, =

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

Постановка задачи

Для задания (а) найти значение функции Y(X) при заданном X. Затем возвести полученное значение в квадрат, т.е. найти Y1=Y (X), и вычислить абсолютное значение Y.

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

Для задания (б) записать выражение, зависящее от координат точки X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не принадлежит.

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

Результаты всех вычислений вывести на печать.

Объяснить полученные результаты.

Варианты заданий

1.

а) Y=sin(x)+x

б)

Y

 

2.

а) Y= x+ 2

 


б)

 

3.

а) Y=x - cos(arcsin(x))

б)

 

 

4.

а) Y=

б)

 
 

 


5.

а) Y= tg (x) - (5 - x )

б)

-

 

 

6.

а) Y=25x

б)

 

 

7.

Y= + ctg(arctg (x ))

б)

 

 


8.

а) Y=

б)

 

9.

Y= sin x

 

 

б)

 

10.

а) Y=

б)

 

 


11.

а) Y= 2 x cos(x) +1

б)

 
 

 


12.

а) Y=

Y     -1 0 1 X   -1 -1  
б)

 

 

13.

а) Y =

Y   -1 0 1 X   -1  
б)

 
 

 


14.

а) Y=

б)

 

15.

а) Y= 1+ x cos (x) + sin (x)

б)

 

16.

а) Y=

 

 

б)

 

17.

а) Y= arcsin (x+x )

б)

 

 

18.

а) Y= cos(arctg (х))

б)

 

 

19.

а) Y= 7× arcctg(x )

 

б)

 

20.

а)Y= 5× x

б)

 

 

21.

а) Y=

б)

 

 

22.

а) Y= 2

б)

 

 


23.

а) Y= 1+

б)

 

 

24.

а) Y= arcsin

б)

 

 

25.

а) Y = arсcos(x + x )

б)

 

Методические указания

Ввод данных для заданий а) и б) организовать с клавиатуры.

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

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

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

Содержание отчета

Постановка задачи (общая и конкретного варианта).

Формулы, используемые при решении задачи (математическая модель).

Программа на языке Паскаль.

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

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

7. Пример выполнения работы и оформления отчета

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

«Выполнение программы простой структуры. Вычисление выражений с использованием стандартных функций»

1. Постановка задачи:

Для задания (а) найти значение функции Y(X) при заданном X. Затем возвести полученное значение в квадрат, т.е. найти Y1=Y (X), и вычислить абсолютное значение Y.

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

Для задания (б) записать выражение, зависящее от координат точки X1 и Y1 и принимающее значение TRUE, если точка принадлежит заштрихованной области, и FALSE, если не принадлежит.

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

Результаты всех вычислений вывести на печать.

Вариант №26

а) Y= 1+

 

 

б)

 

 

2. Формулы для решения задачи:

а) y=1+1/x+1/sqr(x), x<>0

б) x2+y2=R2;

sqr(x)+sqr(y) <=1, y<0

3. Программа

Var x,x1,y,y1,y2:real;T:Boolean;

Begin

Writeln(‘введите число для вычисления выражения1’);

Read(x);

Writeln(‘Результат задания а’);

If x=0 then writeln(‘Деление на 0 невозможно’)else

Begin

y=1+1/x+1/sqr(x);

Writeln (‘при х=’,x:6:3,’ y=’,y:6:3);

y1=abs(y);

Writeln(‘Абсолютное значение y1=’, y1:6:3);

y2:=sqr(y);

Writeln(‘Квадрат у=’,y2:6:3);

End;

Writeln(‘Введите координаты точки’);

Readln(x1,y1);

T:=(sqr(x1)+sqr(y1)<=1)and(y1<=0);

Writeln(‘Результат задания б:’,t);

End.

4. Функции, используемые в программе:

Sqr(x) – возведение в квадрат

Abs(x)- получение абсолютного значения

5. Тестирование программы

Задание а

Х Результат работы программы
  Деление на 0 невозможно
  Y=3, y1=3,y2=9
-1 Y=1, y1=1,y2=1

Задание б

Х1, Y1 Результат работы программы
X1=0.5 Y1=0.5 T=false
X1=-0.5 Y1=0.5 T=false
X1=0.5 Y1=-0.5 T=true
X1=-0.5 Y1=-0.5 T=true

Лабораторная работа №2
«Основные операторы языка Паскаль»

1. Цель работы:

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

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

Теоретические сведения

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

Условный оператор используется при выборе из двух возможных вариантов, он имеет следующий вид:

IF <условие> THEN <оператор1> ELSE <оператор2>, где IF, THEN, ELSE — зарезервированные слова;

<условие> — выражение логического типа;

<оператор1>, <оператор2> —любые операторы языка Turbo Pascal.

Выполнение этого оператора начинается с проверки условия. Если оно истинно (т. е. равно TRUE), то выполняется <оператор1>, иначе (значение выражения равно FALSE) выполняется <оператор2>. Часть оператора, начинающаяся со слова ELSE, может быть опущена, тогда оператор выполняется только при значении выражения равном TRUE.

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

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

Варианты

1. Найти сумму целых положительных чисел, кратных 3 и меньших 200.

2. Найти сумму целых положительных четных чисел, меньших 100.

3. Найти сумму целых положительных нечетных чисел, меньших 200.

4. Найти сумму целых положительных чисел, больших 20, меньших 100 и кратных 3.

5. Найти сумму ряда из К слагаемых, общий член которого

6. Найти сумму ряда из К слагаемых, общий член которого

7. Найти сумму ряда из К слагаемых, общий член которого

8. Найти сумму ряда из К слагаемых, общий член которого

9. Найти сумму ряда с точностью e=10-4, общий член которого

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

11. Найти сумму ряда с точностью e=10-4, общий член которого

12. Найти сумму ряда с точностью e=10-4, общий член которого

13. Найти сумму ряда с точностью e=10-4, общий член которого

14. Найти сумму ряда с точностью e=10-4, общий член которого

 

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

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

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

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

19. Задана последовательность, заканчивающаяся 0. Найти среднее арифметическое этой последовательности.

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

21. Задано число К. Определить является ли оно простым (простое число делится только на 1 и само на себя).

22. Задано число К. Определить является ли оно числом Фибоначчи (1, 1, 2, 3, 5, 8, 13...).

23. Задано число N. Сформировать N чисел Фибоначчи (1, 1, 2, 3, 5, 8, 13,...).

24. Задано число N. Сформировать N простых чисел (простое число делится только на 1 и само на себя).

25. Задана последовательность из N целых чисел. Определить сколько чисел принимают наибольшее значение.

Содержание отчета

1. Постановка задачи (общая и конкретного варианта).

2. Алгоритм в виде блок-схемы.

3. Программа на языке Паскаль.

4. Объяснение использования операторов циклов.

 

5. Пример выполнения работы и оформления отчета

Лабораторная работа №2
«Основные операторы языка Паскаль»

1. Вариант 26: Найти сумму ряда из К слагаемых, общий член которого

2. Алгоритм решения задачи

 

3. Программа

Var S,A:Real;

I,K:Integer;

Begin

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

Readln(K);

S:=0;A:=2;

For I:=1 to K do begin

S:=S+A;

A:=1/(exp(2*ln(i))+1/exp(3*ln(i));

End;

Writeln(‘Сумма ряда S=’, S:6:3);

End.

4. В программе использован цикл с параметром (For), т. к. в условии задачи указано количество слагаемых суммы, следовательно, вычисление слагаемого и добавление его к сумме надо повторить К раз.
Лабораторная работа №3
«Работа с массивами»

1. Цель работы:

1) Получение практических навыков при работе с массивами.

2) Знакомство с алгоритмами сортировки.

2. Краткие теоретические сведения:

Понятие массива

Массив – это формальное объединение нескольких однотипных объектов (чисел, символов, строк и т.п.), рассматриваемое как единое целое.

Массив описывается следующим образом:

<имя_типа> = ARRAY [<сп_инд_типов>] OF <тип>,

где ARRAY, OF – зарезервированные слова (массив, из);

<имя_типа> -- правильный идентификатор;

<сп_инд_типов> -- тип-диапазон, с помощью которого компилятор определяет число элементов массива.

<тип> -- любой тип ТР, в том числе и другой массив.

Определить переменную как массив можно непосредственно при описании этой переменной, без предварительного описания типа массива, например:

var f: array [1..12] of integer.

Перебор элементов массива

1) Элементы массива можно обрабатывать по одному элементу, двигаясь от начала массива к его концу (или в обратном направлении):
For I:=1 to N do <обработка a[i]>

2) Элементы массива можно обрабатывать по два элемента, двигаясь с обеих сторон массива к его середине:
I:=1;J:=N;
while I<J do begin
<обработка a[I] и a[J]>;
I:=I+1;J:=J+1;
end;

3) Элементы массива можно обрабатывать по два элемента, двигаясь от начала к концу с шагом 1(т. е. обрабатываются пары элементов a[1]и a[2], a[2]и a[3] и т. д.)
for I:=1 to N-1 do
<обработка a[I] и a[I+1]>

4) Элементы массива можно обрабатывать по два элемента, двигаясь от начала к концу с шагом 2(т. е. обрабатываются пары элементов a[1]и a[2], a[3]и a[4] и т. д.)
I:=1;
while I<N do begin
<обработка a[I] и a[I+1]>
I:=I+2;
end;

Сортировка массивов

Сортировка – это процесс перегруппировки заданного множества объектов в некотором установленном порядке.

Шейкер –сортировка

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

L:=2;{левая граница}R:=N;{правая граница}

Repeat

For J:=R to L do{справа налево}

If a[J]<a[J-1] then begin

K:=J;

T:=a[J];

a[J]:=a[j-1];

a[j-1]:=T;

end;

L:=K+1;

For J:=L to R do{слева направо}

If a[J]<a[J-1] then begin

K:=J;

T:=a[J];

a[J]:=a[j-1];

a[j-1]:=T;

end;

R:=K-1;

Until L>R;

Поиск в массиве

Варианты заданий.

1.

1) Вычислить количество четных чисел в массиве.

2) Заменить все элементы массива, совпадающие с числом Х, на число У.

2.

1) Вычислить максимальный элемент массива.

2) Заменить отрицательные элементы в массиве на положительные.

3.

1) Найти сумму положительных чисел в массиве.

2) Заменить все четные числа на 1. Если четных чисел нет, то вывести сообщение об этом.

4.

1) Определить есть ли в массиве хотя бы одна пара совпадающих по величине чисел.

2) Преобразовать массив так, чтобы все нули оказались в начале массива.

5.

1) Найти количество чисел, попадающих в диапазон от А до В, где А и В задаются пользователем. Если таких чисел нет, то вывести сообщение об этом.

2) Упорядочить массив по возрастанию методом простого включения.

6.

1) Найти количество элементов массива, в которые входит цифра «5». Если таких элементов нет, то вывести сообщение об этом.

2) Заменить все элементы совпадающие с минимальным на среднее арифметическое массива.

7.

1) Вычислить произведение всех элементов массива, имеющих четные индексы и определить является ли оно четным числом.

2) Сдвинуть циклически элементы массива на количество элементов равное первому элементу массива.

8.

1) Вычислить сумму минимального и максимального элементов массива.

2) Преобразовать этот массив в двумерный массив N x K, где N и К задаются пользователем, недостающие элементы заполнить нулями.

9.

1) Найти количество элементов массива, которые являются простыми числами. Если таких чисел нет, то вывести сообщение об этом.

2) Преобразовать массив так, чтобы в начале массива были записаны все нули, потом все положительные элементы, а потом - отрицательные.

10.

1) Найти третий по величине элемент массива.

2) Преобразовать массив так, чтобы в начале массива были записаны все отрицательные элементы, потом все нули, а потом - положительные элементы.

11.

1) Найти количество одинаковых элементов в массиве.

2) Отсортировать массив по убыванию методом простого обмена.

12.

1) Найти количество чисел, которые заканчиваются цифрой «3». Если таких чисел нет, то вывести сообщение об этом.

2) Заменить в массиве все отрицательные числа на «0».

13.

1) Найти сумму элементов массива, в которые входит цифра «7». Если таких чисел нет, то вывести сообщение об этом.

2) Поменять местами первый и последний элементы массива.

14.

1) Найти количество чисел в массиве, меньших заданного числа У. Если таких чисел нет, то вывести сообщение об этом.

2) Упорядочить массив по убыванию методом простого выбора.

15.

1) Вычислить количество элементов массива кратных 5.

2) Упорядочить массив по возрастанию методом шейкер- сортировки.

16.

1) Найти первое вхождение элемента Х в массив. Если такого числа нет, то вывести сообщение об этом.

2) Преобразовать массив так, чтобы все положительные элементы были записаны в начале массива, потом все отрицательные, а потом - нули.

17.

1) Найти количество элементов массива, которые превышают число Х, заданное пользователем. Если таких чисел нет, то вывести сообщение об этом.

2) Поменять местами максимальный и минимальный элементы массива.

18.

1) Найти минимальную длину подмассива, расположенного между двумя нулями.

2) Заменить все четные числа на ноль.

19.

1) Вычислить сумму элементов массива и определить из сколько в ней цифр.

2) Заменить все отрицательные числа на их модуль.

20.

1) Найти количество различных чисел в массиве.

2) Преобразовать массив в двумерный массив N x N, где N задается пользователем. «Лишние» числа отбросить.

21.

1) Определить сколько элементов массива отличается от среднего значения на 10 процентов.

2) Используя метод бинарного поиска найти номер первого вхождения элемента Х в массив.

22.

1) Найти два наибольших элемента в массиве.

2) Все простые числа в массиве заменить на значение максимального элемента.

23.

1) Определить сколько в массиве чисел Фибоначчи.

2) Если число является числом Фибоначчи, то заменить его нулем.

24.

1) Найти количество элементов массива, у которых сумма цифр является четным числом.

2) Удалить из массива элементы, индексы которых кратны 5. Оставшиеся элементы сдвинуть в начало массива, конец массива заполнить нулями.

25.

1) Определить номера трех наименьших элемента в массиве.

2) Удалить из массива все четные элементы. Оставшиеся элементы сдвинуть в начало массива, конец массива заполнить нулями.

5. Содержание отчета:

1) Постановка задачи (общая и конкретного варианта).

2) Анализ поставленного задания: определить к какому классу задач относится задача варианта и объяснить почему.

3) Словесный алгоритм решения задачи.

4) Текст программы.

5) Результаты тестов.

6. Пример выполнения работы и оформления отчета

Лабораторная работа №3
«Работа с массивами»

1. Постановка задачи:

1) Сформировать с помощью датчика случайных чисел одномерный массив размерности М, которая задается пользователем.

2) Полученный массив напечатать.

3) Выполнить обработку и преобразование массива в соответствии со своим вариантом.

4) Напечатать преобразованный массив.

Вариант №26.

1) Вычислить количество четных чисел в массиве.

2) Удалить из массива все четные элементы. Оставшиеся элементы сдвинуть в начало массива, конец массива заполнить нулями.

2. Анализ задания:

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

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

3. Алгоритм решения 1 задачи:

Организуем перебор массива от начала к концу по одному элементу, для каждого элемента проверим условие четности a[I] mod 2 =0. Ели условие выполнится, то счетчик четных чисел увеличим на 1.

Алгоритм решения 2 задачи:

Организуем перебор массива от начала к концу по одному элементу, для каждого элемента проверим условие нечетности a[I] mod 2 <>0. Ели условие выполнится, то запишем этот элемент во вспомогательный массив B. Затем оставшиеся элементы массива B заполним нулями.

4. Программа

Var a:array[1..100]of integer;

I,J,K,M:integer;

Begin

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

Read(M);

Writeln(‘Сформирован массив целых чисел’);

For I:= 1 to M do begin

a[I]:=random(100)-50;

Write(a[I],’ ‘);

End;

Writeln;

K:=0;

For I:=1 to M do

If a[I]mod 2=0 then K:=K+1;

If k>0 then

Writeln(‘в массиве ‘, K, ‘ четных элементов’)

Else begin

Writeln (‘Четных элементов нет’);

exit;{выход из программы}

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

J:=0;

For I:=1 to M do

If a[I]mod 2<>0 then begin

J:=J+1;

b[J]:=a[I];

end;

K:=J;

For I:=K to M do b[J]:=0;

For I:=1 to M do write(b[I],’ ‘);

Writeln;

End.

5. Тесты:



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 531; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.218.215 (0.37 с.)