Главная страница
Навигация по странице:

метод_рекомендации_1. Методические рекомендации к лабораторным работам по информатике для студентов специальности Информационные системы и технологии



Скачать 2.33 Mb.
Название Методические рекомендации к лабораторным работам по информатике для студентов специальности Информационные системы и технологии
Анкор метод_рекомендации_1.doc
Дата 19.11.2017
Размер 2.33 Mb.
Формат файла doc
Имя файла метод_рекомендации_1.doc
Тип Методические рекомендации
#11331
страница 9 из 9
1   2   3   4   5   6   7   8   9

Таблица 14


Номер варианта

Условие

1

Вычислить квадратный корень из заданного числа x с точностью Е по итерационному методу Ньютона по формуле:



2

Для выражения exp(k)/k определить наименьшее k, при котором значение выражения становится больше заданного числа n.

3

Найти наибольшую степень двойки, не превышающую заданного числа n.

4

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

5

Найти наименьшее общее кратное двух чисел.

6

Найти наибольшую степень 3, не превышающую заданного числа m.

7

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

8

Кощей Бессмертный зарыл клад на глубину 1 м. Этого ему показалось не достаточно, он отрыл клад, углубил колодец до 2 м и снова зарыл. Этого ему опять показалось мало, он отрыл клад, углубил колодец до 3 м и зарыл. Затем он проделал тоже, углубив колодец до 4 м, потом до 5 м, 6 м и т.д. Известно, что колодец глубиной n метров Кощей вырывает за n2 дней. Известно также, что на 1001-й день Кощей умер от непосильной работы. На какой глубине остался клад? (Временем, необходимым для закапывания клада, пренебречь).

9

Два параллельных зеркала А и В обращены друг к другу. При падении луча на зеркало А он ослабляется на Т[%], а при его падении на зеркало В - на Р[%]. Определить, после скольких отражений луч, попеременно отражаясь то от зеркала А, то от зеркала В, ослабеет более чем в 50 раз. Первоначально он попадает на зеркало А.

10

В водохранилище каждые сутки поступает Т [м3] воды, а расходуется R [ м3] на орошение полей и испарение, к тому же ежесуточно теряется А(1-exp(-V)) [м3] воды на просачивание в почву, где А - коэффициент , V - объем воды в водохранилище. Определить, за сколько дней объем воды в водохранилище уменьшится на Р [%] заданного первоначального объема V0. Принять А = 100.

11

Найти число в последовательности Фибоначчи большее заданного числа m и его порядковый номер. Члены ряда Фибоначчи вычисляются по формуле: F(1) = F(2) = 1

F(k) = F(k-1) + F(k-2), k > 2

12

На железнодорожном пути находится n разрозненных вагонов. К ним движется вагон с кинетической энергией W, он сцепляется с ближайшим вагоном, затем вместе с ним движется дальше, сцепляясь с очередным вагоном, и т.д. При каждой сцепке расходуется 20% имеющейся кинетической энергии, еще Р[ Дж ] затрачивается на то, чтобы стронуть с места неподвижный вагон и, если энергия не истрачена полностью, движение продолжается. Определить, сколько вагонов окажутся сцепленными.

13

Вычислить значения функции



для k = 1,2 ... Вычисления производить до тех пор, пока t >= z. x, y, z вводятся.

14

Извлечь корень степени m из числа x, воспользовавшись итерационной формулой:



Вычисления продолжать пока не станет меньше заданной точности Е.



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

Цель работы:

1. Усвоить правила работы с переменными типа

массив на языке программирования Delphi.

2. Научиться составлять алгоритмы и программы

для обработки одномерных и двумерных массивов.

Краткие сведения из теории

Массивом называется упорядоченная последовательность однотипных объектов, обозначаемая одним именем. Чтобы выделить один из объектов (элемент) массива, надо указать имя массива и номер элемента в нем. Номер элемента называется индексом, индекс указывается в квадратных скобах и может быть числом, переменной, выражением. Имя массива образуется по правилам образования имен переменных.

Например, А [10], B [I, J], SUM [1, J+5]

Если для выделения элемента нужен один индекс, массив называется одномерным, два – двумерным и т.д. Число элементов массива называется длиной или размером массива. Одномерный массив называется вектором.

Для описания массивов используется служебное слово array. Массив в Delphi можно описывать двумя способами:

а) в разделе описания переменных var:

var

<�имя переменной>: array [тип индекса] of <�тип компоненты>;

б) определить сначала тип, а затем описать массив этим типом

type

<�имя типа>: array [тип индекса] of <�тип компоненты>;

var

<�имя переменной>: <�имя типа>;

где <�тип индекса> - порядковый тип;

<�тип компоненты> - любой тип.

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

Двумерный массив состоит из элементов с двумя индексами: один показывает номер строки в массиве, другой - номер столбца.

В Delphi возможны массивы и большей размерности. Для их описания возможны два подхода:

а) массив рассматривается как массив других массивов:

type

x = array[1..100] of real; y = array[1..2] of x;

б) массив рассматривается как многоиндексный

type y = array [ 1...100, 1...2 ] of real;

Оба описания равноценны.

Пример 11. В векторе найти номера и значения первого минимального и последнего максимального элементов.

Использованные компоненты:

Label3 – для вывода результата;

Edit1 – для ввода числа n;

BitBtn1 – для запуска программы;

BitBtn2 – для выхода из программы;

StringGrid1 – для вывода массива.



Рис. 19. Форма примера 11
Программный код

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, Grids;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

StringGrid1: TStringGrid;

Label3: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

var a:array[1..100] of real;

n,i,nmin,nmax:integer;

amax,amin:real;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

n:=strtoint(edit1.Text);

randomize;

for i:=1 to n do

begin

a[i]:=random(81)- 30;

stringgrid1.cells[i-1,0]:=floattostr(a[i]);

end;

amin:=a[1]; nmin:=1;

amax:=a[1]; nmax:=1;

for i:=1 to n do

begin

if a[i]

amin:=a[i]; nmin:=i

end;

if a[i]>=amax then begin

amax:=a[i]; nmax:=i;

end;

end;

label3.Caption:='Минимальное= '+floattostr(amin)+#13+'Номер минимального= '+inttostr(nmin)+' '+#13+'Максимальное= '+floattostr(amax)+#13+'Номер максимального= '+inttostr(nmax);

end;

end.
Пример 12. Создать массив из n случайных целых чисел, равномерно распределенных в диапазоне от 0 до 100. Вычислить среднее арифметическое и количество четных чисел.
Использованные компоненты:

Label3 – для вывода результата;

Edit1 – для ввода числа n;

BitBtn1 – для запуска программы;

BitBtn2 – для выхода из программы;

StringGrid1 – для вывода массива.



Рис. 20. Форма примера 12

Программный код

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, Grids;

type

TForm1 = class(TForm)

Label1: TLabel;

Edit1: TEdit;

StringGrid1: TStringGrid;

Label3: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

const nmax=1000;

type x=array[1..nmax] of integer;

var m:x;

k,i,n:integer;

s:real;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

n:=strtoint(edit1.Text);

randomize;

for i:=1 to n do

begin

m[i]:=random(101);

stringgrid1.Cells[i-1,0]:=inttostr(m[i]);

end;

s:=0;

k:=0;

for i:=1 to n do

if not odd(m[i]) then begin

s:=s+m[i];

k:=k+1;

end;

s:=s/k;

label3.Caption:='Среднее арифметическое= '+floattostr(s)+#13+

'Количество четных чисел= '+inttostr(k);

end;

end.
Пример 13. Получить матрицу, элементами которой являются произведения номеров строк i и номеров столбцов j.

Использованные компоненты:

BitBtn1 – для запуска программы;

BitBtn2 – для выхода из программы;

StringGrid 1 – для вывода матрицы.


Рис. 21. Форма примера 13
Программный код

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, Grids;

type

TForm1 = class(TForm)

StringGrid1: TStringGrid;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

type mat=array[1..9,1..9] of integer;

var i,j:integer;

p:mat;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

for i:=1 to 9 do

begin

for j:=1 to 9 do

begin

p[i,j]:=i*j;

stringgrid1.Cells[j-1,i-1]:=inttostr(p[i,j]);

end;

end;

end;

end.
Порядок работы
1. Выполнить программы примеров 11, 12. Подготовить тесты для проверки правильности работы программ, провести отладку, проанализировать результаты. Сохранить программы на диске.

2. Разработать алгоритм и программу для примера из таблицы 15. Вектор вводить с клавиатуры.

3. Разработать алгоритм и программу для примера из таблицы 16. Вектор сформировать из случайных целых чисел.

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

5. Разработать алгоритм и программу для примера из таблицы 17. Матрицу вводить с клавиатуры.
Таблица 15


Номер варианта

Условие

1

Даны два вектора целых чисел А и В. Вычислить вектор С, который содержит нечетные элементы вектора А, которых нет в векторе В.

2

Расположить элементы вектора в обратном порядке. Дополнительный массив не использовать.

3

Найти среднее арифметическое элементов массива X(n), исключив из них максимальное и минимальное значение.

4

Вектор B(n) заменить вектором, у которого элементы образуются делением вектора В на их сумму.

5

Заменить все элементы вектора X(m), стоящие до максимального, нулями.

6

В массиве R(k) найти минимальный элемент среди положительных и максимальный среди отрицательных.

7

В массиве У(n) заменить все его элементы, стоящие после минимального, нулями.

8

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

9

На плоскости на расстоянии s[1], s[2], ..., s[10] от центра кругового кольца с внутренним радиусом r и внешним R расположены точки. Определить количество точек, расположенных внутри кольца.

10

Дан вектор Х. Все его элементы не равные нулю, переписать (сохраняя их порядок) в начало массива, а нулевые элементы - в конец массива (новый массив не заводить).

11

Даны два вектора А и В. Сформировать вектор С, который содержит элементы, присутствующие в обоих массивах.

12

Имеется n окружностей с центром в начале координат и радиусами R[1], R[2], ..., R[n]. Определить номера окружностей между которыми находится точка с координатами (х, у).

13

В векторе X(n) поменять местами максимальный и последний элементы.

14

В векторе У(m) поменять местами максимальный и минимальный элементы.

Таблица 16


Номер варианта

Условие

1

Вычислить среднее геометрическое элементов вектора У(k), кратных трем.

2

Определить, кратна ли сумма элементов вектора A(x) семи.

3

В векторе D(m) определить количество четных элементов.

4

В векторе У(k) поменять местами первый и минимальный элементы.

5

Из вектора С(n) сформировать вектор А, содержащий четные элементы вектора С и вектор В — нечетные элементы.

6

Произвести сдвиг элементов вектора A(n) на к позиций влево так, что на место a[1] станет a[k+1], на место a[n-k] станет a[n], на место a[n-k+1] станет a[1], на место a[n-k+2] станет a[2], на место a[n] станет a[k].

7

Найти среднее геометрическое элементов массива С(k), стоящих на четных местах.

8

В массиве X(n) поменять местами минимальный и последний элементы.

9

В векторе Т(к) заменить все его элементы, стоящие после максимального, нулями.

10

Найти среднеквадратичное элементов вектора A(n). s=(a[1]*a[1] + a[2]*a[2] + ... +a[n]*a[n])/n

11

Элементы вектора В, удовлетворяющие условию B[i]>10, переписать в массив X, а элементы, удовлетворяющие условию B[i] <= 10, переписать в массив У.

12

В векторе Z(m) определить сумму нечетных элементов.

13

Определить индексы четных элементов массива А(к).

14

Определить, кратна ли сумма элементов вектора D(12) пяти.


Таблица 17

Номер варианта

Условие

1

Для данного целого положительного n создать матрицу A(n,n), в которой элементы, стоящие по диагонали, равны единице, а все остальные элементы - нулевые.

2

Для данного целого положительного n сформировать матрицу A(n,n), в которой элементы диагонали равны номеру строки, а все остальные элементы - нулевые.

3

В матрице A(n,n) поменять местами две строки с номерами р и q.

4

В матрице A(n,m) поэлементно вычесть последнюю строку из всех строк, кроме последней.

5

В матрице х(k,l) поменять местами максимальный и минимальный элементы.

6

Матрицу A(n,n) сформировать по следующему принципу: по диагонали расположены единицы, выше диагонали - нули, а элементы, расположенные ниже диагонали, равны сумме соответствующих индексов.

7

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

8

Дана матрица A(m,n). Дополнить ее (m+1)-й строкой и (n+1)-м столбцом, в которых записать суммы элементов соответствующих строк или столбцов исходного массива А.

9

Транспонировать матрицу x(m,n).

10

Из матрицы А(3,4) получить вектор В, элементами которого являются произведения элементов в каждой строке матрицы.

11

Создать вектор М, содержащий количество отрицательных элементов каждого столбца матрицы z(3,4).

12

Сформировать матрицу У(n,n) таким образом, чтобы значения всех элементов 1-го столбца были равны 1, второго - 2, n-го - n.

13

Имеется матрица A(m,n). Найти максимальный из всех минимальных элементов строк. Вывести номер строки, в которой расположено выбранное число.

14

Сформировать диагональную матрицу C(m,m). У диагональной матрицы все элементы равны нулю, кроме диагональных.



СОДЕРЖАНИЕ







Лабораторная работа 1. Создание простого приложения на Delphi

2

Лабораторная работа 2. Использование различных функций Delphi

11

Лабораторная 3. Программирование на Delphi разветвляющихся алгоритмов

20

Лабораторная 4. Программирование на Delphi циклических алгоритмов

28

Лабораторная 5. Работа с массивами на Delphi

40











1   2   3   4   5   6   7   8   9
написать администратору сайта