Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Лабораторная работа №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; г)(х = у) or ( у > х ) при х = 2, у = 1; д)a or (not b ) при а = false, b = true. 3.Записать на Паскале выражение, истинное при выполнении указанного условия и ложное в противном случае: а) 0< х< 1; б) х = max (х, у, z); в) х =max (х, у, z) (операцию not не использовать ); г) хотя бы одна из логических переменных а и b имеет значение true; д) обе логические переменные а и b имеют значение true; 4.Вычислить значение выражения: 5.Объяснить ошибки в следующих записях: г) 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 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.
Контрольные вопросы:
3.Какие переменные могут принимать логические типы данных?
Лабораторная работа №8 Решение задачи на создание и уничтожение объекта. Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с принципами создания объектов. Закрепить полученные на лекции знания. Написать и отладить программу Теория: Принципы ООП:
Для создания объектов используют 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 Объект – точка
Вариант№2 Объект – 2 линии. ( − | )
Вариант№3 Объект – треугольник.
Вариант№4 Объект – прямоугольный треугольник.
Вариант№5 Объект – квадрат.
Вариант№6 Объект – вертикальный прямоугольник.
Вариант№7 Объект – горизонтальный прямоугольник.
Вариант№8 Объект – круг.
Контрольные вопросы:
Задание: Создать собственный объект с помощью конструкторов и деструкторов и использовать его в программе.
Вариант№1 Объект – овал
Вариант№2 Объект – ломаная линия ( ^ ).
Вариант№3 Объект – прямоугольный треугольник
Вариант№4 Объект –круг.
Вариант№5 Объект – треугольник равнобедренный, прямоугольный
Вариант№6 Объект – прямоугольник
Вариант№7 Объект – квадрат.
Контрольные вопросы: Вариант №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, В, С определить количество отрицательных. Контрольные вопросы:
Лабораторная работа №15 Использование компонентов редактирования. Цель работы: Применение теоретических навыков на практике. Ознакомить студентов с компонентами ввода-вывода. Закрепить полученные на лекции знания. Написать и отладить программу. Теория: · TEdit - стандартный управляющий элемент Windows для ввода. Он может быть использован для отображения короткого фрагмента текста и позволяет пользователю вводить текст во время выполнения программы. · TButton позволяет выполнить какие-либо действия при нажатии кнопки во время выполнения программы. В Delphi все делается очень просто. Поместив TButton на форму, Вы по двойному щелчку можете создать заготовку обработчика события нажатия кнопки. Далее нужно заполнить заготовку кодом. Функции преобразования:
· TMaskEdit Специализированный редактор TMaskEdit предназначен для ввода текста, соответствующего некоторому шаблону, задаваемому свойством EditMask: String. Если это свойство не задано, TMaskEdit работает как обычный редактор TEdit. Шаблон состоит из трех частей, отделенных друг от друга символами «; ». Первая часть задает маску ввода, вторая - это символ «О» или «I», определяющий, записывается ли в Text результат наложения маски или исходный текст («О» - исходный текст). В третьей части указывается символ, который в окне редактора будет стоять в полях, предназначенных для ввода символов. Описатели полей ввода представлены в следующей таблице:
Специальные символы:
Пример: Найти сумму 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;
Свойство является важным атрибутом компонента. Свойства служат двум главным целям. Во-первых, они определяют внешний вид формы или компонента. А во-вторых, свойства определяют поведение формы или компонента. Существует несколько типов свойств, в зависимости от их “природы”, т.е. внутреннего устройства. · Простые свойства - это те, значения которых являются числами или строками. Например, свойства 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 Определить что, данное четырехзначное число читается одинаково слева направо и справа налево; Контрольные вопросы:
Лабораторная работа №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. Пример: Заменить в строке «А» на «О».
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 Ввести последовательность символов, предшествующих символу « - » и выяснить сколько среди них букв Н, Ю, Х. Все буквы Ю заменить на точку Контрольные вопросы:
Лабораторная работа №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 января приходится на любой день недели, определить день недели, на который приходится день с введенной датой. Контрольные вопросы:
Лабораторная работа №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; Просмотров: 1562; Нарушение авторского права страницы