Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Лабораторная работа №1 Решение задачи на работу с целым типом данных.



Лабораторная работа №1 Решение задачи на работу с целым типом данных.

 

 

Цель работы: Ознакомление с процедурами ввода-вывода данных и с различными типами данных

Теория:

Числа, не имеющие дробной части в Паскале представляются целым типом. Целый тип описывается служебным словом INTEGER. Целые числа задаются в диапазоне от -32768 до +32767 и занимают два байта памяти.

Формат описания:

VAR < имя переменной>: INTEGER;

Задание1:

1.Вычислить значения выражений:

а)20 div 4; д)20 mod 4;

б)20 div 3; е)20 mod 3;

в)24 div 7; ж)24 mod 7;

г)56 div 8; з)56 mod 8;

2.Указать порядок выполнения операций в

выражении:

а) -а mod b + a div b*c;

б) а mod b - a div b/c;

3.Записать на Паскале следующие формулы:

а)(1+х) ; д)sin 8;

б) ; е)arctg 7;

в)tgx; ж) ;

г) ; з) ;

4.Вычислить значения выражений:

а)trunc(20.4); д)round(243.6);

б)trunc(320.64); е)round(502.8);

в)trunc(780.56); ж)round(314.60);

г)trunc(900.784); з)round(521.16);

5.Определить тип(целый или вещественный)

выражения:

а)1+0.0; д)20/5;

б)sqr(5.0); е)sqrt(36);

в)succ(-2); ж)round(314.60);

г)trunc(-900.7); з)sin(0);

6.Если у - вещественная переменная, а n – целая,

то какие из следующих операторов присваивания правильные, а какие нет?

а)у: =n+1; д)n: =sqr(sqr(n));

б)n: =y-1; е)y: =trunc(y);

в)n: =6.0; ж)n: =n/6;

г)n: =y div 4; з)n: =n*sqrt(9);

7.Вычислить значения выражений:

а)3*7 div 2 mod 7/3-trunc(1);

б)succ(round(5/2)-pred(3))+1;

8.Присвоит целой переменной h первую цифру из

дробной части числа х(если х=32.675, то h=6)

9.Дано вещественное число х

а) выделить его целую часть;

б) округлить данное число до n значащих цифр после запятой.

10.Найти остаток деления целого числа а на целое

число в.

Задание2:

1.Записать на Паскале отношение, истинное при выполнении указанного условия и ложные в противном случае:

а)целое k делится на 7;

б)уравнение ах2 + bx+с = 0 ( а*0 ) не имеет вещественных корней;

в)точка ( х, у) лежит вне круга радиуса г с центром в точке (1, 0 );

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

2.Вычислить значение выражений:

а)not odd(n) при n = 0;

б)t and (p mod 3 = 0) при t = true, p = 20;
B)(x*y< > 0)and(y> x) при х = 2, у = 1;

г)(х = у) or ( у > х ) при х = 2, у = 1;

д)a or (not b ) при а = false, b = true.

3.Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:

а) 0< х< 1;

б) х = max (х, у, z);

в) х =max (х, у, z) (операцию not не использовать );

г) хотя бы одна из логических переменных а и b имеет значение true;

д) обе логические переменные а и b имеют значение true;

4.Вычислить значение выражения:
a)true or (1/10> 0);
б)(1/10< 0) or true

5.Объяснить ошибки в следующих записях:
а) 1 and 0; б) true + false; в) true< 0;

г) not 2 = 5; д) х> 0 or у = 4;

е) not not b or or d

6.Указать порядок выполнения операций при вычислении выражения:

а) a not b or not c and d;

б) (x > = 0) or t and odd (x)or(y*y< > 4)

7. Вычислить следующие выражения при

а = true и b - false:
a) a or b and not a;

б) (a or b) and not a;

в) not a and b;

r) not ( a and b);

8.Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае:

а)х принадлежит отрезку [0, 1];

б)х лежит вне отрезка [0, 1];

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

г)х лежит вне отрезков [2, 5] и [-1, 1 ];

д)каждое из чисел х, у, и z положительно;

е)хотя бы одно из чисел х, у и z положительно;

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

9. Вычислить значения выражений:

a) false< true; 6)ord(false)=l;

в) pred(true); г) ord(succ(false))> 0 »

10. Вычислить значения выражений: ,

а)not (pred(c) or (ord( с) =1)) при c=true;

б)(p< true)=(q=false) при p =q=true;

в)a and b> a or b при a=false, b=true.

 

Контрольные вопросы:

  1. Каким служебным словом описывается целый тип данных?
  2. Каким служебным словом описывается вещественный тип данных?
  3. sqrt(36)=?
  4. Формат описания логического типа?
  5. Формат описания символьного типа?

3.Какие переменные могут принимать логические типы данных?

 

Лабораторная работа №8 Решение задачи на создание и уничтожение объекта.

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с принципами создания объектов. Закрепить полученные на лекции знания. Написать и отладить программу

Теория:

Принципы ООП:

  1. Инкапсуляция - объединение в единое целое данных и алгоритмов обработки этих данных;
  2. Наследование - свойство объектов порождать своих потомков;
  3. Полиморфизм – свойство родственных объектов решать схожие по смыслу проблемы разными способами.

Для создания объектов используют 3 зарезервированных слова: object, constructor, destructor и 2 стандартные директивы: private, public.

Object – для описания объекта:

Type

Имя объекта = object

private {поля объекта}

{методы объекта}

public {поля объекта}

{методы объекта}

end;

private- описание скрытых полей и методов;

public- поля и методы доступны в любой программной единице.

Например: Создать модуль с объектом «Линия» и методами «Нарисовать», «Переместить» и «Удалить».

UNIT Linia;

INTERFACE

Type

TLene = object

Private

x1, y1, x2, y2: integer; {координаты линии}

color: word; {цвет линии}

Public

Procedure Draw (ax1, ay1, ax2, ay2: integer; aColor: word);

Procedure Perem;

Procedure Udal;

End;

IMPLEMENTATION

Uses graph;

Procedure TLene.Draw;

var dg, dm: integer;

Begin

dg: =detect; InitGraph(dg, dm, ’’);

x1: =ax1; y1: =ay1; y2: =ay2; x2: =ax2;

color: =aColor; setcolor(aColor);

line(x1, y1, x2, y2);

line(x2, y2, x2+60, y2);

End;

Procedure TLene.Perem;

Begin

ClearDevice; SetColor(color);

Line(x1+30, y1+30, x2+30, y2+30);

Line(x2+30, y2+30, x2+90, y2+30);

End;

Procedure TLene.Udal;

Begin

ClearDevice; ReadLn; CloseGraph;

End;

END.

Задание: Создать собственный объект и использовать его в программе.

Вариант№1

Объект – точка

  1. Свойства - координаты точки, цвет точки;
  2. Методы – нарисовать, переместить, удалить

Вариант№2

Объект – 2 линии. ( − | )

  1. Свойства - координаты начала и конца, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№3

Объект – треугольник.

  1. Свойства - координаты точек, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№4

Объект – прямоугольный треугольник.

  1. Свойства - координаты точек, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№5

Объект – квадрат.

  1. Свойства - координаты точек, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№6

Объект – вертикальный прямоугольник.

  1. Свойства - координаты точек, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№7

Объект – горизонтальный прямоугольник.

  1. Свойства - координаты точек, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№8

Объект – круг.

  1. Свойства - координаты центра, радиус, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Контрольные вопросы:

  1. Как создать объект?
  2. Как использовать методы объекта?
  3. Что такое Private и Public?

 

Задание: Создать собственный объект с помощью конструкторов и деструкторов и использовать его в программе.

 

Вариант№1

Объект – овал

  1. Свойства - координаты центра, радиусы, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№2

Объект – ломаная линия ( ^ ).

  1. Свойства – координаты начала и конца, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№3

Объект – прямоугольный треугольник

  1. Свойства - координаты точек, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№4

Объект –круг.

  1. Свойства - координаты начала и конца, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№5

Объект – треугольник равнобедренный, прямоугольный

  1. Свойства - координаты точек, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№6

Объект – прямоугольник

  1. Свойства - координаты точек, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Вариант№7

Объект – квадрат.

  1. Свойства - координаты точек, цвет линии;
  2. Методы – нарисовать, переместить, удалить

Контрольные вопросы:

Вариант №1

Определить что, все цифры данного четырехугольника числа N различны;

Вариант №2

Определить что, данные числа x, y являются координатами точки, лежащей в первой координатной четверти;

Вариант №3

Определить что, цифры данного трехзначного числа N являются членами арифметической прогрессии;

Вариант №4

Определить что, сумма двух действительных чисел a и b являются целым числом, т.е. дробная часть суммы равна нулю;

Вариант №5

Определить что, данное натуральное число a кратно числу b, но не кратно числу с.

Вариант №6

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

Вариант №7

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

Вариант №8

Определить что, число С является средним арифметическим чисел а и b;

Вариант №9

Программа – льстец. На экране появляется вопрос «Кто ты: мальчик или девочка? Введи Д или М». В зависимости от ответа на экране должен появиться текст «мне нравятся девочки! » или «Мне нравятся мальчики! ».

Вариант №10

Проверить, является ли четырехугольник со сторонами a, b, c, d ромбом.

Вариант №11

Определить, является ли треугольник со сторонами a, b, c равнобедренными.

Вариант №12

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

Вариант №13

Определить что, данные числа C и D являются соответственно квадратом и кубом числа а;

Вариант №14

Определить, является ли треугольник со сторонами A, B, C равносторонним.

Вариант №15

Среди чисел A, В, С определить количество отрицательных.

Контрольные вопросы:

  1. Основные составные части Delphi?
  2. Какие функции преобразования вы знаете?
  3. Какие компоненты служат для ввода и вывода данных?
  4. Какие типы свойств существуют?
  5. Как изменить значение свойства компонента программно?

Лабораторная работа №15 Использование компонентов редактирования.

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами ввода-вывода. Закрепить полученные на лекции знания. Написать и отладить программу.

Теория:

· TEdit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы.

· TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом.

Функции преобразования:

IntToStr Перевод целого числа в строковое
StrToInt Наоборот
FloatToStr Перевод вещественного числа в строку
StrToFloat Наоборот

· TMaskEdit

Специализированный редактор TMaskEdit предназначен для ввода текста, соответствующего некоторому шаблону, задаваемому свойством EditMask: String. Если это свойство не задано, TMaskEdit работает как обычный редактор TEdit.

Шаблон состоит из трех частей, отделенных друг от друга символами «; ». Первая часть задает маску ввода, вторая - это символ «О» или «I», определяющий, записывается ли в Text результат наложения маски или исходный текст («О» - исходный текст). В третьей части указывается символ, который в окне редактора будет стоять в полях, предназначенных для ввода символов.

Описатели полей ввода представлены в следующей таблице:

 

Символ Поле
L должно содержать букву
может содержать букву
А должно содержать букву или цифру
а может содержать букву или цифру
С должно содержать любой символ
с может содержать любой символ
О должно содержать цифру
может содержать цифру
# может содержать цифру, «+», «-»

 

Специальные символы:

Символ Значение
\ Следующий символ - литерал. Позволяет вставить в маску литералы из символов описателей полей ввода и специальных символов
  На это место вставляется символ-разделитель Windows для часов, минут, секунд
/ На это место вставляется символ-разделитель Windows для полей даты.
/ Разделитель частей шаблона
! Подавляет все ведущие пробелы
> Все следующие за ним поля ввода преобразуют буквы к заглавным
< Все следующие за ним поля ввода преобразуют буквы к строчным
о Отменяет преобразование букв

Пример: Найти сумму 2 чисел – целого и вещественного.

1. Загрузить Delphi (ПУСК -> Программы -> BorlandDelphi6 -> Delphi6

2. Открыть новое приложение File| New|Application, если новое приложение не создалось

3. Перенесите на пустую форму, кнопку TButton со страницы Standard палитры компонент. Затем щелкните курсором мыши в нужном месте формы. На форме появится кнопка, Delphi присвоит имя по умолчанию – Button1.

4. Так же перенесите 2 компоненты TEdit, 4 - TLabel.

5. Выделите на форме компонент Button1 – кнопку. Перейдите в Инспектор Объектов и измените свойство Caption (надпись), которое по умолчанию равно Button1 на «Выполнить»

6. Аналогично измените свойство Caption у компонет Label на: Label1 > > «Число1», Label2 > > «Число 2», Label3 > > «Результат», а у компоненты Labe4 свойство Caption удалить.

7. Удалите в Edit1 и в Edit2 значение в свойстве Text.

8. Расположите компоненты как на рисунке

9. Теперь необходимо написать обработчик события при нажатии кнопки. Нажмите 2 раза на кнопке, появится редактор кода программы, напишите следующее не удаляя все. что за вас написал Delphi:

procedure TForm1.Button1Click(Sender: TObject);

var a: integer;

b, c: real;

begin

a: = StrToInt(Edit1.text); {ввод числа из компонеты Edit}

b: =StrToFloat (Edit2.Text); {и перевод из строки в число}

c: =a+b;

Label4.Caption: =FloatToStr(c); {вывод результата в Label4}

end;

  1. Запустите приложение Run | Run F9
  2. Введите числа в поля «Число 1» и «Число 2», а затем нажмите кнопку «Выполнить».
  3. Для завершения приложения нажмите «Х» на заголовке формы.
  4. Сохраните приложение File| Save Project as, создайте свою папку и нажмите «Сохранить»

Свойство является важным атрибутом компонента. Свойства служат двум главным целям. Во-первых, они определяют внешний вид формы или компонента. А во-вторых, свойства определяют поведение формы или компонента.

Существует несколько типов свойств, в зависимости от их “природы”, т.е. внутреннего устройства.

· Простые свойства - это те, значения которых являются числами или строками. Например, свойства Left и Top принимают целые значения, определяющие положение левого верхнего угла компонента или формы. Свойства Caption и Name представляют собой строки и определяют заголовок и имя компонента или формы.

· Перечислимые свойства - это те, которые могут принимать значения из предопределенного набора (списка). Простейший пример - это свойство типа Boolean, которое может принимать значения True или False.

· Вложенные свойства - это те, которые поддерживают вложенные значения (или объекты). Object Inspector изображает знак “+” слева от названия таких свойств. Имеется два вида таких свойств: множества и комбинированные значения. Object Inspector изображает множества в квадратных скобках. Если множество пусто, оно отображается как []. Установки для вложенных свойств вида “множество” обычно имеют значения типа Boolean. Наиболее распространенным примером такого свойства является свойство Style с вложенным множеством булевых значений. Комбинированные значения отображаются в Инспекторе Объектов как коллекция некоторых величин, каждый со своим типом данных. Некоторые свойства, например, Font, для изменения своих значений имеют возможность вызвать диалоговое окно. Для этого достаточно щелкнуть маленькую кнопку с тремя точками в правой части строки Инспектора Объектов, показывающей данное свойство.

 

Задание:

Вариант №1

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

Вариант №2

Определить что, число С является средним арифметическим чисел а и b;

Вариант №3

Программа – льстец. На экране появляется вопрос «Кто ты: мальчик или девочка? Введи Д или М». В зависимости от ответа на экране должен появиться текст «мне нравятся девочки! » или «Мне нравятся мальчики! ».

Вариант №4

Проверить, является ли четырехугольник со сторонами a, b, c, d ромбом.

Вариант №5

Определить, является ли треугольник со сторонами a, b, c равнобедренными.

Вариант №6

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

Вариант №7

Определить что, данные числа C и D являются соответственно квадратом и кубом числа а;

Вариант №8

Определить, является ли треугольник со сторонами A, B, C равносторонним.

Вариант №9

Среди чисел A, В, С определить количество отрицательных.

Вариант №10

Определить что, все цифры данного четырехугольника числа N различны;

Вариант №11

Определить что, данные числа x, y являются координатами точки, лежащей в первой координатной четверти;

Вариант №12

Определить что, цифры данного трехзначного числа N являются членами арифметической прогрессии;

Вариант №13

Определить что, сумма двух действительных чисел a и b являются целым числом, т.е. дробная часть суммы равна нулю;

Вариант №14

Определить что, данное натуральное число a кратно числу b, но не кратно числу с.

Вариант №15

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

Контрольные вопросы:

  1. Основные составные части Delphi?
  2. Какие функции преобразования вы знаете?
  3. Какие компоненты служат для ввода и вывода данных?
  4. Какие типы свойств существуют?
  5. Как изменить значение свойства компонента программно?

 

 

Лабораторная работа №16 Использование компонентов многострочного редактора для обработки строковых данных.

 

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами ввода/вывода строк на форме приложения с использованием окна Watch. Закрепить полученные на лекции знания. Написать и отладить программу

Теория:

Окно наблюдения (View| Debug Windows| Watch). Ctrl+F5 на переменной – откроется окно наблюдения и в нем появится имя переменной и ее значение или выделить курсором выражение (Ctrl+F5) и в окне наблюдения значение этого выражения.

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

· Функция Length (s) выдает длину строки s.

· Функция Concat (s1, s2,.., sn) возвращает строку s1+s2+..+sn.

· Функция Copy (s, p, k) возвращает фрагмент строки s, который начинается в позиции p и имеет длину k.

· Функция Pos (s1, s) ищет первое вхождение подстроки s1 в строку s и возвращает номер первого символа s1 в строке s или 0 если не нашли.

· Процедура Delete (s, p, k) удаляет из строки s фрагмент, который начинается в позиции p и имеет длину k.

· Процедура Insert (s, s1, p) вставляет в строку s подстроку s1, начиная с заданной позиции p.

Турбо паскаль позволяет производить преобразования числовых значений в строковые и наоборот. Для этого используются процедуры Str (X: n: d, S) и Val (S, X, e). Первая получает их числа X строку S с изображением этого числа, в которой не менее n символов и из них d знаков после запятой. Параметры n и d необязательные. Вторая процедура получает из строки S число X. При успешном результате e=0.

Пример: Заменить в строке «А» на «О».

  1. Переместить на форму компоненты: 2 Edit, Label, Button1 и измените значения их свойств.
  2. Расположите компоненты как показано на рисунке и при 2 нажатии на кнопке введите текст программы:

procedure TForm1.Button1Click(Sender: TObject);

var s1: string;

i: integer;

 

begin

s1: = Edit1.text; {ввод строки в переменную s1}

 

for i: =0 to length(s1) do

begin

if s1[i]='А' then

begin

delete (s1, i, 1);

insert('О', s1, i);

end;

end;

Edit2.Text: =s1; {вывод новой строки}

end;

Задания: Используя компоненту Edit, выполнить следующие действия:

Вариант №1

Ввести последовательность символов, предшествующую символу " пробел" и выяснить: есть ли среди них буква А, сколько раз встретился символ "." , заменить букву В на *

Вариант №2

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

Вариант №3

Ввести произвольную последовательность символов, предшествующую символу! и выяснить, есть ли среди них буквы, входящие в слово КУРС и сколько раз какая из этих букв встретилась.

Вариант №4

Ввести последовательность символов, предшествующих точке и выяснить, встретились ли среди них буквы, входящие в слово ТУР

Вариант №5

Ввести последовательность символов, заканчивающихся * выяснить: сколько пробелов, сколько букв А, сколько букв С, все буквы А заменить на точку

Вариант №6

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

Вариант №7

Ввести последовательность символов, предшествующих символу * и выяснить сколько среди них букв S, A, R. Все буквы S заменить на точку

Вариант №8

Ввести произвольную последовательность символов, предшествующую символу “.“ и определить: сколько символов введено, есть ли среди них символ пробел, все встретившиеся буквы “A“ заменить символом “*“.

Вариант №9

Вывести произвольную последовательность из 15 символов и определить, есть ли среди них буквы, входящие в слово «Мера». Если они найдены, заменить их символом пробел.

Вариант №10

Ввести строку символов, состоящую из N слов, разделённых пробелом и определить, сколько слов введено, кроме того, вывести все слова отдельно «столбцом».

Вариант №11

Ввести произвольную последовательность из 30 символов и определить, есть ли среди них буквы входящие в слово “ШИНА” и сколько среди символов пробелов

Вариант №12

Ввести последовательность символов, предшествующую символу " пробел" и выяснить: есть ли среди них буква Н, сколько раз встретился символ «=», заменить букву «Н» на «? »

Вариант №13

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

Вариант №14

Ввести последовательность символов, предшествующих точке и выяснить, встретились ли среди них буквы, входящие в слово МИР

Вариант №15

Ввести последовательность символов, предшествующих символу « - » и выяснить сколько среди них букв Н, Ю, Х. Все буквы Ю заменить на точку

Контрольные вопросы:

  1. Какие функции над строками вы знаете?
  2. Как произвести ввод и вывод строки в приложении?
  3. Какие компоненты необходимы для работы со строками?

 


 

 

Лабораторная работа №17 Использование компонентов многострочного редактора для одномерных массивов.

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами вывода текста на форме приложения. Закрепить полученные на лекции знания. Написать и отладить программу

 

Теория:

· TMemo - иная форма TEdit. Подразумевает работу с большими текстами. TMemo может переносить слова, сохранять в Clipboard фрагменты текста и восстанавливать их, и другие основные функции редактора. TMemo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц. (Есть VBX и “родные” компоненты Delphi, где этот предел снят).

Пример: Найти сумму 5 чисел в одномерном массиве.

Разместите не форме компоненты Memo1, 2 - Label, Button, Edit, как на рисунке. В свойстве Memo Lines| TString… удалить текст «Memo1» и «OK».

procedure TForm1.Button1Click(Sender: TObject);

var a: array [0..9] of integer;

sum, i: integer;

begin

sum: =0;

for i: =0 to 4 do

begin

a[i]: =StrToInt(Memo1.Lines[i]);

sum: =sum+a[i];

end;

Edit1.Text: =IntToStr(sum);

end;

Вводите все значения в Memo1!!!!

Задания:

Вариант №1

Дан массив натуральных чисел А(10). Найти сумму элементов, кратных данному К.

Вариант №2

Дана последовательность целых чисел а1, …, а10. Выяснить, какое число встречается раньше – положительное или отрицательное.

Вариант №3

Дана последовательность действительных чисел а1, …, а10. Заменить все ее члены, большие данного Z, этим числом. Подсчитать количество замен.

Вариант №4

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

Вариант №5

Даны целые числа а1, а2, …, а10.Вывести на печать только те числа, для которых выполняется а[i] < i.

Вариант №6

Даны натуральные числа а1, а2, …, а10.Подсчитать количество чисел у которых остаток от деления на М равен L (O < L < M - 1).

Вариант №7

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

Вариант №8

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

Вариант №9

Дана последовательность действительных чисел а1, а2, …, а10. Подсчитать те ее элементы, которые принадлежат отрезку [c, d].

Вариант №10

Дана последовательность целых положительных чисел. Найти произведение только тех чисел, которые больше заданного числа М. Если таких нет, то выдать сообщение об этом.

Вариант №11

Последовательность а1, а2, …, аn состоит из нулей и единиц. Поставить в начало этой последовательности нули, а затем единицы.

Вариант №12

В последовательности действительных чисел а1, а2, …, а10, есть только положительные и отрицательные элементы. Вычислить произведение отрицательных элементов P1 и произведение положительных элементов P2. Сравнить модуль Р2 с модулем Р1 указать, какое из произведений по модулю больше.

Вариант №13

Дан массив действительных чисел. Среди них есть равные. Найти первый максимальный элемент массива и заменить его нулём

Вариант №14

Даны целые числа а1, а2, …, а10. Наименьший член этой последовательности заменить целой частью среднего арифметического всех членов, остальные члены оставить без изменений.

Вариант №15

Даны действительные числа а1, а2, …, а10. Требуется умножить все члены последовательности на квадрат ее наименьшего члена, если а10 > 0, и на квадрат ее наибольшего члена, если а10 < 0.

Контрольные вопросы:

1. Какой компонент используется для работы с одномерным массивом?

Пример: По номеру фамилии в списке вывести его должность.

 

 

procedure TForm1.FormCreate (Sender: TObject);

begin

ListBox1.Items[0]: ='Иванов';

ListBox1.Items[1]: ='Петров';

ListBox1.Items[2]: ='Сидоров';

end;

procedure TForm1.Button1Click (Sender: TObject);

var i: integer;

 

begin

i: = StrToInt(Edit1.Text);

case i of

1: Label2.Caption: ='директор';

2: Label2.Caption: ='менеджер';

3: Label2.Caption: ='дворник';

end;

end;

Задания:

Вариант №1

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

Вариант №2

По введенному номеру месяца определить, название месяца.

Вариант №3

Для целого числа К от 1 до 9 напечатать значение переменной К римскими цифрами.

Вариант №4

Имеются следующие описания:

Язык = (Паскаль, Ява, Бейсик, Фортран, Лисп)

По русскому названию языка вывести английский эквивалент.

Вариант №5

Имеются описания:

Сезон = (зима, весна, лето, осень)

Погода = (тепло, холодно)

По сезону ответить какова погода.

 

Вариант №6

По введенному натуральному числу (1..100) обозначающему количество ворон, вывести надпись «На дереве К ворон», где ворона склоняется соответственно: ворон, ворона, вороны. Если число > 100, то надпись «Ветка обломилась».

Вариант №7

По введенному номеру месяца определить количество дней в месяце (год не високосный).

Вариант №8

По возрасту человека определить ходит ли он в садик, в школу, на работу или сидит на пенсии, а при Н > 120 «Уже умер».

Вариант №9

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

Вариант №10

Имеются следующие описания:

Страна = (Австрия, Болгария, Греция, Италия, Норвегия, Франция, ФРГ)

Столица = (Вена, София, Афины, Рим, Осло, Париж, Бон)

По значению страны определить столицу.

Вариант №11

По номеру ноты вывести ее текстовый эквивалент (до, ре, ми, фа, соль, ля, си) и написать ее соседние ноты. (Например: Фа – Ми и Соль)

Вариант №12

По номеру шахматной клетки (1..64) определить ее значение. (Например: 1 – А1, а 64 – Н8 )

Вариант №13

Группу детей, приехавшую в пионерский лагерь, распределяют по отрядам следующим образом:

6-7 лет – 5 отряд; 7-9 лет – 4 отряд; 9-11 лет – 3 отряд; 11-13 лет – 2 отряд; 13-15 (включительно) – 1 отряд. Определить по вводимому возрасту отряд для ребенка.

Вариант №14

Задается код цвета, требуется выдать какой цвет. Использовать свою собственную кодировку.

Вариант №15

Имеются следующие описания:

Число = 1..31

День недели = (вс, пн, вт, ср, чт, пт, сб)

Считая, что год не високосный и его 1 января приходится на любой день недели, определить день недели, на который приходится день с введенной датой.

Контрольные вопросы:

  1. Какие компоненты для работы со списками вы знаете?
  2. Компонент ListBox
  3. Компонент ComboBox

 

 

Лабораторная работа №19 Использование компонентов таблиц для работы с двумерным массивом.

 

 

Тема: Работа с двумерным массивом (компонента StringGrid).

Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами вывода двумерного массива на форме приложения. Закрепить полученные на лекции знания. Написать и отладить программу

 

Теория:

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

Таблица делится на две части - фиксированную и рабочую. Фиксированная служит для показа заголовков столбцов/рядов и для ручного управления их размерами. Обычно фиксированная часть занимает крайний левый столбец и самый верхний ряд таблицы, однако с помощью свойств FixedCols и FixedRows можно задать другое количество фиксированных столбцов и рядов (если эти свойства имеют 0, таблица не содержит фиксированной зоны). Рабочая часть - это остальная часть таблицы. Она может содержать произвольное количество столбцов и рядов, более того, эти величины могут изменяться программно. Рабочая часть может не умещаться целиком в пределах окна компонента, в этом случае в него автоматически помещаются нужные полосы прокрутки. При прокрутке рабочей области фиксированная область не исчезает, но меняется ее содержимое - заголовки строк и рядов.

Центральным свойством компонента является Cells - двухмерный массив ячеек, каждая из которых может содержать произвольный текст. Конкретная ячейка определяется парой чисел - номером столбца и номером ряда, на пересечении которых она находится (нумерация начинается с нуля). Свойство cells имеет тип String, поэтому программа может легко прочитать или записать содержимое нужной ячейки. Например:

Cells [1, 1]: = 'Левая верхняя ячейка рабочей зоны';

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

Пример: Найти сумму всех элементов двумерного массива 4х4.

1. Расположить на форме следующие компоненты: StringGrid(Additional), Button, Label, Edit(для вывода результата);

2. Свойства StringGrid, заменить на FixedCols=0(без заголовков строк), FixedRols=0(без заголовков столбцов);

3. Свойства RowCount=4, ColCount=4;

4. Свойство Options| GoEditing = true (разрешить редактировать);

5. Расположить компоненты следующим образом:

Напишите следующий обработчик события:

Procedure Form1.Button1Click (Sender: TObject);

var a: array [0..3, 0..3] of integer;

i, j, s: integer;

begin

s: =0;

for i: =0 to 3 do

for j: =0 to 3 do

 

begin

a[i, j]: = StrToInt(StringGrid1.Cells[i, j]); {считывание элементов }

s: =s+a[i, j];

end;

Edit1.Text: =IntToStr(s);

end;

 

Задания:

Вариант № 1


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-08-31; Просмотров: 1431; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.269 с.)
Главная | Случайная страница | Обратная связь