49996 (Понятие множества. Символьный тип), страница 2

2016-07-30СтудИзба

Описание файла

Документ из архива "Понятие множества. Символьный тип", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "49996"

Текст 2 страницы из документа "49996"

Значения переменной s1=’воз’. А на экране будут выведены следующие строки: воз и 34.

Удаление

В Turbo Pascal для этого используется процедура Delete(str, n,m), которая вырезает из строки str m символов, начиная с n-го. таким образом сама строка изменяется. Например:

Дан фрагмент программы:

s:='123456'; delete(s, 3, 2); writeln(s);

После выполнения этих операторов из строки будут удалены два символа, начиная с третьего, то есть строка будет такой: s = '1256'.

Замена (Вставка)

В Turbo Pascal это можно сделать, применяя процедуру Insert(s1,s2,n) – вставка строки s1 в строку s2, начиная с п-го символа, при этом первая строка остается такой же, как и была, а вторая получает новое значение. Например:

s1;='34': s2:='1256'; insert (s1, s2, 3);

В результате выполнения данной процедуры строка будет такой

s2='123456'.

Числа и строки

Надо заметить, что число 25 и строка 25 – это не одно и то же. Для работы с числами и строками в Turbo Pascal применяются две процедуры.

Str(n,s1) – переводит числовое значение n в строковое и присваивает результат строке s1, причем можно переводить как целые числа, так и вещественные. Например:

n:=12; str(n,s1); - после выполнения s1 ='12'

Существует обратная операция, переводящая строковое значение в числовое.

Функция val(s, n, k) – переводит строковое значение в числовое, если данная строка действительно является записью числа (целого или вещественного), то значение k=0, а n – это число, иначе k будет равно номеру символа, в котором встречается первое нарушение записи числа n. Например:

val(‘1234',n,k) п=1234, k=0;

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

Иногда в программах возникает необходимость по коду определить символ и, наоборот, по символу определить его код. Для этого используют функцию: CHR(x).

Эта функция возвращает символ, соответствующий ASCII-коду числа x. Например:

for i = 0 to 255 do writeln( i,' ', chr(i));

Для определения кода по символу используют функцию ORD. Например:

readln(s); writeln(ord(s));

Комбинированный тип данных (записи)

Запись - тип данных, состоящий из фиксированного числа компонентов (называемых полями) одного или нескольких типов.

Приведём примеры описания типа запись:

type Point=RECORD x,y: Real

END;

Dates=RECORD day : 1..31; mon : String[3]; year: 1..3000

END;

var p,r: Point;

dt: Dates;

Можно определить массив записей, поля которых также являются массивами:

type Student=Array [1..N] of Record fam : String[15]; birth: Dates; man : Boolean; marks: Array[1..10] of 0..5

end;

var Group: Student;

Идентификатор Group можно использовать для хранения информации о группе студентов (фамилия, дата рождения, пол и оценки по 10 предметам).

Обращение к значению поля записи происходит при помощи составного имени, содержащего идентификатор переменной и имя поля, разделённые точкой. Например, p.x, dt.mon, group[1].man, group[2].marks[1].

Составное имя может использоваться везде, где допустимо применение идентификатора типа поля: в выражениях, операторах ввода-вывода, присваивания, в качестве фактических параметров.

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

WITH DO

Если после слова WITH задать имя записи, то в операторе, следующим за DO, для доступа к полю можно указывать только имя поля без имени переменной.

Записи с вариантами

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

Мы используем две структуры данных типа запись:

Nomer

Proverka

Prinimal

 

Nomer

Proverka

GolovBol

Lihoradka

Toshnota

Что можно сделать с описаниями переменных, чтобы мы могли работать одновременно с обеими структурами? Для этого в описании записи можно применить специальный переключатель Case. После возможного результата Proverka в скобках приводится описание соответствующих полей. Это иллюстрируется ниже:

type Effect=Record Nomer: Integer; Case Proverka: Boolean of

FALSE: (PrinimalRanee: Boolean);

TRUE : (GolovBol,Lihoradka,Toshnota: Boolean)

end;

var Nekto: Effect;

Переключатель Case используется здесь для описания переменных и отличается от оператора Case: в переключателе Case используются скобки и отсутствует служебное слово end, обязательное в конце "обычного" Case.

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

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

Type Pogoda=Record Temperatura: Integer; Vlagnost : Integer; Case Veter: Boolean of TRUE : (Napravlenie: (S,N,V,O); Skorost : Integer); FALSE: ()

end;

Замечания:

После вариантной части записи поля появляться не могут.

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

Вариантная часть может содержать другие записи, в том числе и с вариантами. Степень вложенности записей в вариантной части не ограничена.

Разработка Программы

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

Список выходных данных

Выводятся ученики одного класса, либо проживающие в одном доме.

Разработка алгоритма решения задач

Разработка блок-схемы решения задачи

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

unit Unit1;

interface

uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, ADODB, StdCtrls, Mask, DBCtrls, ExtCtrls, Grids, DBGrids, ComCtrls;

type TForm1 = class(TForm) PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

DBEdit4: TDBEdit;

DBEdit5: TDBEdit;

DBEdit6: TDBEdit;

DBEdit7: TDBEdit;

DBEdit8: TDBEdit;

DBEdit9: TDBEdit;

DBEdit10: TDBEdit;

DBEdit11: TDBEdit;

Edit1: TEdit;

Button1: TButton;

ADOConnection1: TADOConnection;

ADODataSet1: TADODataSet;

ADODataSet2: TADODataSet;

DataSource1: TDataSource;

DataSource2: TDataSource;

procedure Button1Click(Sender: TObject);

private { Private declarations } public { Public declarations } end;

var Form1: TForm1;

implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject);

begin

ADODataSet2.Close;

if Length(Edit1.Text)<>0 then

ADODataSet2.CommandText:='select*from школьники where класс like'''+Edit1.Text+'%''or адрес like''%'+Edit1.Text+''''

Else AdoDataSet2.CommandText:='select*from школьники';

ADODataSet2.Open;

end;

end

Список функций:

TForm1 = class(TForm) – служит для создания формы;

PageControl1: TPageControl;- многостраничная панель;

TabSheet1: TTabSheet; - вкладка «добавление/редактирование»;

TabSheet2: TTabSheet; - вкладка «поиск»;

Label1: TLabel; - для подписи компонента

DBEdit1; Label2: TLabel; - для подписи компонента

DBEdit2; Label3: TLabel; - для подписи компонента

DBEdit3; Label4: TLabel; - для подписи компонента

DBEdit4; Label5: TLabel; - для подписи компонента

DBEdit5; Label6: TLabel; - для подписи компонента

DBEdit6; Label7: TLabel; - для подписи компонента

DBEdit7; Label8: TLabel; - для подписи компонента

DBEdit8; Label9: TLabel; - для подписи компонента

DBEdit9; Label10: TLabel; - для подписи компонента

DBEdit10; Label11: TLabel; - для подписи компонента

DBEdit11; DBGrid1: TDBGrid; - отображение данных;

DBNavigator1: TDBNavigator; - управление данными;

DBEdit1: TDBEdit – отображает номер личного дела;

DBEdit2: TDBEdit; - отображает фамилию; DBEdit3:

TDBEdit; - отображает имя;

DBEdit4: TDBEdit; - отображает отчество;

DBEdit5: TDBEdit; - отображает дату рождения;

DBEdit6: TDBEdit; - отображает класс;

DBEdit7: TDBEdit; - отображает адрес;

DBEdit8: TDBEdit; - отображает номер квартиры;

DBEdit9: TDBEdit; - отображает семью;

DBEdit10: TDBEdit; - отображает ФИО папы;

DBEdit11: TDBEdit; - отображает ФИО мамы;

Edit1: TEdit; - служит для ввода критерия поиска;

Button1: TButton; - добавление кнопки;

ADOConnection1: TADOConnection; - обеспечивает соединение с БД;

ADODataSet1: TADODataSet; - представляет собой данные, полученные от источника данных, в результате выполнения SQL – запросов;

ADODataSet2: TADODataSet; DataSource1: TDataSource; - источник данных;

DataSource2: TDataSource; procedure Button1Click(Sender: TObject); - при нажатии на кнопку происходит поиск;

procedure TForm1.Button1Click(Sender: TObject); - построение запроса для кнопки;

Проверка по шагам для отдельных алгоритмов программы

Вкладка "Добавление/редактирование"

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

Вкладка Поиск

С помощью этих вкладок пользователь может произвести поиск учеников по классу или по адресу.

Разработка интерфейса

На первой вкладке «Добавление/редактирование» при помощи DBNavigator мы можем добавлять или редоктировать уже существующие данные об учениках.

На второй вкладке «Поиск» при нажатии кнопки «поиск» происходит поиск по классам или по адресу(ученики проживающие в одном доме).

Тестирование и результаты работы программы

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

Вывод

В ходе данной работы было:

раскрыто понятие множества,

описаны операций, которые можно выполнять над множеством;

раскрыто понятие символьного и комбинированного типов данных;

описаны операции и функции для работы с символьными переменными;

Также в ходе данной работы была написана программа для сохранения и обработки информации об учениках. Данная программа написана на современном языке Turbo-Pascal, который позволил наиболее просто представить эту работу. В ходе выполнения курсового проекта я ознакомился с новыми приемами программирования и особенностями языка Turbo-Pascal.

Список использованной литературы

1. Лахатин, А.С. Языки программирования. Учеб. пособие / А.С. Лахатин, Л.Ю. Искакова. - Екатеринбург, 1998. - 548с.: ил.

2. Богатырев, А. Язык программирования С [Электронный ре-сурс] / А. Богатырев.- электр. дан. - Режим доступа: http://www.refby.com. - Загл. с экрана.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Нет! Мы не выполняем работы на заказ, однако Вы можете попросить что-то выложить в наших социальных сетях.
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
4121
Авторов
на СтудИзбе
667
Средний доход
с одного платного файла
Обучение Подробнее