Основы алгоритмизации и программирования

Разработка методики проведения лабораторных работ по составлению программ линейной, разветвляющейся и циклической структуры, организации подпрограмм, обработки одно- и двумерных массивов, работе с строковыми переменными, файлами, программирование модуля.

Рубрика Программирование, компьютеры и кибернетика
Вид методичка
Язык русский
Дата добавления 01.06.2014
Размер файла 1,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

7.

8.

9.

10.

11.

12.

13.

3. Подготовить отчет по работе

Требование к отчету

Отчет о проделанной работе должен содержать:

- название и цель работы;

- номер варианта для выполнения задания и условие своего варианта;

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

- тексты программ;

- полученные при расчетах численные результаты;

- письменные ответы на контрольные вопросы.

Теоретический материал

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

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

При программировании задач обработки массивов данных необходимо знать:

1) каким образом определять переменные типа массив;

2) правила работы с элементами массивов;

3) алгоритмы обработки массивов.

Для определения данных типа массив можно использовать следующие структуры:

type mas=array[l ..5] of real; {одномерный массив из 5 вещественных элементов}

var mymas:mas;

var

my2mas: array [1.. 10] of mas; { двумерный массив 10*5 вещ, }

mymas2:array[1..10] of array[1..5] of real; {элементов}

mymas3:array[l..l0, 1..5] of real;

………………………………………

const n=7

var a:array[l..n] of byte; {массив из 7 элементов типа Byte}

Таким образом, общая конструкция для определения структуры данных типа массив в программе следующая:

type <имя типа>=аrrау[<тип индексов>] оf <тип элементов>;

где аrrау, оf-служебные слова, [,]-служебные символы.

В качестве <типа индексов> может использоваться любой простой тип, кроме real.

В качестве <типа символов> может использоваться любой простой или сложный тип.

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

Единственное действие, которое можно выполнять над массивами целиком, причем только при условии, что массивы однотипны, - это присваивание. Если в программе описаны две переменные одного типа, например,

Var a , b : array [1..10] of real ;

то можно переменной a присвоить значение переменной b ( a := b ). При этом каждому элементу массива aбудет присвоено соответствующее значение из массива b. Все остальные действия над массивами производятся поэлементно.

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

Можно объявить (описать) массив любой размерности. Ограничения, которые имеются при объявлении массивов:

1) границы изменения индексов (размерности) необходимо определить либо в описании массива, либо до его объявления.

Например:

const N=5;

var a:array[l..N] of real;

2) максимальный объем памяти выделенной под массив не должен превышать 64кБ.

Вы можете объявить одномерный массив следующим образом:

var

а : array [1..5] of byte;

b : array [1..3] of char;

z : array ['d'..'g'] of integer;

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

Ввод элементов одномерного массива.

1) Для ввода массива удобно использовать компонент StringGrid. Значок компонента StringGrid находится на вкладке Additional.

Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. В таблице перечислены некоторые свойства компонента StringGrid.

Свойства компонента StringGrid

// ввод массива целых чисел

// считаем, что если ячейка пустая, то соответствующий

// ей элемент массива равен нулю

for i:= 1 to n do

if Length(StringGridl.Cells[i-1, 0]) <>0

then a[i] := StrToInt(StringGridl.Cells[i-1,0])

else a[i] := 0;

// ввод массива дробных чисел

// считаем, что если ячейка пустая, то соответствующий

// ей элемент массива равен нулю

for i:= 1 to n do

if Length(StringGridl.Cells[i-l,0])<>0

then a[i] := StrToFloat(StringGridl.Cells[i-1, 0]) else a[i] := 0;

2) С помощью типизированных констант

const

а1 : array [1..6] of integer = (-5,8,5,0,7,-8);

а2 : array [1..3] of char = ('a',b','c');

3) С помощью датчика случайных чисел

for i:=l to l0 do

a[i]:=random(20);

В этом случае значениями элементов массива a[i] будут произвольные значения от 0 до 19 . Для того чтобы получились дробные числа нужно в функции random опустить параметр.

Вывод элементов массива.

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

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

В качестве примера рассмотрим вывод элементов массива в компонент Label в виде строки, где элементы разделены пробелом.

for k:=l to n do

Label2.caption:=label2.caption+' '+IntTostr(a[k]);

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

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

2. Как проинициализировать одномерный массив?

3. Как обратиться к элементу массива?

4. Как сгенерировать случайную величину? Дать понятие одномерного массива.

5. Перечислить способы заполнения массива данными.

6. Описать способ заполнения массива с использованием генератора случайных чисел.

7. Как заполнить массив по формуле?

8. Продемонстрировать построение блок-схем задачи с использованием массива.

9. Как вывести элементы массива на экран в одну строку?

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

Цель - Сформировать понятие двумерного массива числового типа. Овладеть умениями обращения к элементам двумерного массива, ввода и вывода массива, составления алгоритмов обработки массивов.

Порядок выполнения работы

1. Ознакомиться с теоретическим материалом.

2. Задачи 11,12

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

2. Подготовить отчет по работе

Требование к отчету

Отчет о проделанной работе должен содержать:

- название и цель работы;

- номер варианта для выполнения задания и условие своего варианта;

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

- тексты программ;

- полученные при расчетах численные результаты;

- письменные ответы на контрольные вопросы.

Теоретический материал

Двумерный массив представляет собой массив, в котором положение элементов определяется 2-мя индексами. Фактически, двумерный массив - это обычный (одномерный) массив, элементами которого являются другие одномерные массивы.

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

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

Mas[n, m], где Mas - имя массива, n - номер строки, а m - номер столбца.

Описать матрицу в программе можно несколькими способами:

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

Var Mas: Array[1..n, 1..m] of <тип элементов>;

2) При помощи одномерного массива, элементами которого являются одномерные массивы.

Пример:

Const n = 5;

m = 10;

Type

Arr1 = Array[1..m] of <тип элементов >;

Arr2 = Array[1..n] of arr1;

Var Mas: arr2;

Переменная Mas - матрица, состоящая из пяти строк, в каждую из которых включено по десять элементов.

3) Предыдущий способ можно упростить так:

Const n = 5;

m = 10;

Турe arr=Array[1..n] Of Аrrау[1..m] of <тип элементов>;

Var Mas: arr;

4) И снова сократив запись, получим:

Const n = 5;

m = 10;

Type arr = Array[1..n,1..m] of <тип элементов>;

Var Mas: arr;

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

for i:=1 to N do

for j:=1 to M do

begin

x [i, j]:=random (100);

stringgrid[j,i]:=IntToStr(x[i,j]);

end;

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

1. Что называется размером массива?

2. Могут ли элементы одного и того же массива иметь разный тип?

3. Как выполняется обращение к элементам массива?

4. Что понимается под диапазоном значений индекса массива?

5. Как задается размерность массива при его описании?

6. Какое значение принимает нижняя граница диапазона значений индекса по умолчанию?

7. Чем ограничена верхняя граница диапазона значений индекса?

8. Как можно организовать ввод элементов одномерного массива?

9. Как можно организовать ввод элементов двумерного массива?

10. Как можно организовать вывод элементов одномерного массива?

11. Как можно организовать вывод элементов двумерного массива?

12. Как организовать вывод элементов двумерного массива в таблицу?

Лабораторная работа 7. Работа со строковыми переменными

Цель - познакомить с понятием "строка" и выработать навыки работы с символьной информацией в языке программирования, научиться использовать строки символов при решении задач.

Порядок выполнения работы

1. Ознакомиться с теоретическим материалом.

2. Задача 13.

3. Подготовить отчет по работе

Требование к отчету

Отчет о проделанной работе должен содержать:

- название и цель работы;

- номер варианта для выполнения задания и условие своего варианта;

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

- тексты программ;

- полученные при расчетах численные результаты;

- письменные ответы на контрольные вопросы.

Теоретический материал

Переменные типа String аналогичны массивам типа Char. Их отличием является то, что число символов (длина строки) может динамически меняться в интервале от единицы до заданного верхнего значения.

Тип String (строка) широко используется для обработки текстов. Этот тип является стандартным и во многом похож на одномерный массив символов Array [0..N] of Char. Значение N соответствует количеству символов в строке и может меняться от 0 до 255. Символы, входящие в строку, занимают позиции с 1 до N. Начальный байт строки с индексом 0 содержит информацию о ее длине, т.е. это символ с кодом, равным длине строки.

Можно, также описывать переменные типа String[K], где K - целое число не больше 255. Так определяются строки с длиной не больше K. Этот тип уже не является стандартным. С символами строки можно работать как с элементами массива из символов, но в отличие от массивов, строки можно вводить целиком, сравнивать друг с другом и сцеплять операцией "+".

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

'abcd' > 'abcD' { 'd'>'D' }

'abcd' > 'abc' { 'd'>'' }

'abc' < 'axxc' { 'b'<'x' }

'abcd' = 'abcd'

Переменная строкового типа (String) может рассматриваться как массив элементов символьного типа (Char). Например, если в программе определены переменные S: string; C: char; и задано S:='Москва', то S[1]='М', S[2]='о' и т. д. и возможно присвоение, например: C:= S[1]; Таким образом строка может рассматриваться как линейный массив символов. Элементы массива, составляющие строку можно переставлять местами и получать новые слова, например:

for i:= 1 to N div 2 do

begin

C:= S[i];

S[i]:= S[N-i+1];

S[N-i+1]:= C

end; { исходное слово выведется справа налево: "авксоМ" }

Здесь N:= ord(S[0]); - число символов в переменной "S" хранится в переменной S[0]. Функция "ord" преобразует символьный тип в целый. N div 2 - количество перестановок для слова из "N" символов. В переменной "C" запоминается значение i-го элемента, который меняется с элементом, симметричным относительно середины строки.

Заменяя или переставляя символы в строке по определенной схеме (закону) можно зашифровать строку. Для дешифровки используется, как правило, схема обратной перестановки или замены символов. Например:

for i:=1 to N do S[i]:= chr(ord(S[i])+2);

{преобразование исходных символов в символы с кодом большим на две единицы}

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

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

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

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

Например, в результате выполнения инструкций

st:= 'Инженер Иванов'; fam:=copy(st, 9, 6) ;

значение переменной fam будет строка 'Иванов'.

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

Например, в результате выполнения инструкции

р := pos('Пе','Санкт-Петербург');

значение переменной р будет равно 7.

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

Например, в результате выполнения инструкций

p:='Город Санкт-Петербург';

delete(s,7,6);

значением переменной s будет строка ' город Петербург'.

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

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

1. Как описываются строковые переменные?

2. Какая максимальная длина строки допустима?

3. Какие операции допустимы над строковыми данными?

4. В чем отличие строковой переменной от массива символов?

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

6. Что выведет функция Copy(x,Pos(' ',x)+1,18), если x='Сила есть - ума не надо'?

Лабораторная работа 8. Работа с данными типа множество

Цель - познакомить с понятием "множество" в языке программирования; выработать навыки работы со структурой данных множество.

Порядок выполнения работы

1. Ознакомиться с теоретическим материалом.

2. Задача 14.

3. Подготовить отчет по работе

Требование к отчету

Отчет о проделанной работе должен содержать:

- название и цель работы;

- номер варианта для выполнения задания и условие своего варианта;

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

- тексты программ;

- полученные при расчетах численные результаты;

- письменные ответы на контрольные вопросы.

Теоретический материал

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

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

type M= Set of B;

Здесь М - множественный тип, В - базовый тип.

Пример описания переменной множественного типа:

type

M= Set of 'A'..'D';

var

MS : M;

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

var

C : Set of 0..7;

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

['A', 'C'] [0, 2, 7] [3, 7, 11..14].

Константа вида [] означает пустое подмножество.

Множество включает в себя набор элементов базового типа, все подм- ножества данного множества, а также пустое подмножество. Если базовый тип, на котором строится множество, имеет К элементов, то число подм- ножеств, входящих в это множество, равно 2 в степени К. Пусть имеется переменная Р интервального типа:

var

P : 1..3;

Эта переменная может принимать три различных значения - либо 1, либо 2, либо 3. Переменная Т множественного типа

var

T : Set of 1..3;

может принимать восемь различных значений:

[ ] [1,2]

[1] [1,3]

[2] [2,3]

[3] [1,2,3]

Порядок перечисления элементов базового типа в константах безразличен.

Значение переменной множественного типа может быть задано конструкцией вида [T], где T - переменная базового типа.

К переменным и константам множественного типа применимы операции присваивания(:=), объединения(+), пересечения(*) и вычитания(-):

['A','B'] + ['A','D'] даст ['A','B','D']

['A'] * ['A','B','C'] даст ['A']

['A','B','C'] - ['A','B'] даст ['C'].

Результат выполнения этих операций есть величина множественного типа.

К множественным величинам применимы операции: тождественность (=), нетождественность (<>), содержится в (<=), содержит (>=). Результат выполнения этих операций имеет логический тип, например:

['A','B'] = ['A','C'] даст FALSE

['A','B'] <> ['A','C'] даст TRUE

['B'] <= ['B','C'] даст TRUE

['C','D'] >= ['A'] даст FALSE.

Кроме этих операций для работы с величинами множественного типа в языке ПАСКАЛЬ используется операция in проверяющая принадлежность элемента базового типа, стоящего слева от знака операции, множеству, стоящему справа от знака операции. Результат выполнения этой операции - булевский. Операция проверки принадлежности элемента множеству часто используется вместо операций отношения, например:

A in ['A', 'B'] даст TRUE,

2 in [1, 3, 6] даст FALSE.

При использовании в программах данных множественного типа выполнение операций происходит над битовыми строками данных. Каждому значению множественного типа в памяти ЭВМ соответствует один двоичный разряд. Например, множество

['A','B','C','D']

представлено в памяти ЭВМ битовой строкой

1 1 1 1.

Подмножества этого множества представлены строками:

['A','B','D'] 1 1 0 1

['B','C'] 0 1 1 0

['D'] 0 0 0 1

Величины множественного типа не могут быть элементами списка вво- да - вывода.

Инициализация величин множественного типа производится с помощью типизированных констант:

const seLit: Set of 'A'..'D'= []

В каждой конкретной реализации транслятора с языка ПАСКАЛЬ количество элементов базового типа, на котором строится множество, ограничено. В TURBO PASCAL количество базовых элементов не должно превышать 256.

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

1. Что такое множество, как оно описывается?

2. Как определить новый тип данных с использованием перечисления?

3. Как описываются типизированные константы типа множество?

4. Как осуществляется ввод-вывод значений переменных типа множество?

5. Какие типы данных используются в качестве базовых при объявлении типа множество?

6. Какие операции определены над множествами?

7. Какие операции допустимы над переменными, заданными перечислением?

8. Чем похожи и чем отличаются множества и массивы?

9. Какое значение у выражений: а) x in [x]; б) [ ] <= [x,y,z]; в) [x]<>[x,x,x]

Лабораторная работа 9. Программирование модуля

Цель - закрепление знаний о модулях; разработка модуля и программы с его использованием.

Порядок выполнения работы

1. Ознакомиться с теоретическим материалом.

2. Задача 15 Разработать модуль, содержащий заданные процедуры или функции, а также основную программу с использованием модуля согласно вариантам заданий.

1.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над обыкновенными дробями вида P/Q (P -- целое, Q -- натуральное): 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) сокращение дроби; 6) возведение дроби в степень N (N -- натуральное).

Дробь представить следующим типом:

Type Frac = Record

P : Integer;

Q : 1.. High(LongInt)

End;

2.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над комплексными числами: 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) вычисление модуля комплексного числа; 6) возведение комплексного числа в степень n (n -- натуральное).

Комплексное число представить следующим типом:

Type Complex = Record

R, M : Real; {действительная и мнимая часть числа}

End;

3.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций с квадратными матрицами: 1) сложение двух матриц; 2) умножение одной матрицы на другую; 3) нахождение транспонированной матрицы; 4) вычисление определителя матрицы.

Матрицу описать следующим образом:

Const NMax = 10;

Type Matrica = Array [1..NMax, 1..Nmax] Of Real;

4.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над векторами на плоскости: 1) сложение; 2) вычитание; 3) скалярное умножение векторов; 4) умножение вектора на число; 5) длина вектора.

Вектор представить следующим типом:

Type Vector = Record X, Y : Real End;

5.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над натуральными числами в P-ичной системе счисления (2<=P<=9): 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) перевод из десятичной системы счисления в P-ичную; 6) перевод из P-ичной системы счисления в десятичную.

P-ичное число представить следующим типом:

Type Chislo = Array [1..64] Of 0..8;

6.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над натуральными числами в шестнадцатеричной системе счисления: 1) сложение; 2) вычитание; 3) умножение; 4) деление; 5) перевод из двоичной системы счисления в шестнадцатеричную; 6) перевод из шестнадцатеричной системы счисления в десятичную;

7.

Реализовать в виде модуля набор подпрограмм для выполнения операций с многочленами от одной переменной (первый многочлен степени m, второй -- степени n): 1) сложение; 2) вычитание; 3) умножение; 4) деление с остатком; 5) операции отношения (равно, не равно); 6) возведение в натуральную степень k одного из многочленов.

Многочлен представить следующим типом:

Type Mnogochlen = Array [1..500] Of Integer;

8.

Реализовать в виде модуля набор подпрограмм для работы с длинными целыми числами (числами, выходящими за диапазон допустимых значений любого целого типа): 1) сложение; 2) вычитание; 3) умножение; 4) нахождение частного от деления одного числа на другое; 5) нахождение остатка от деления одного числа на другое.

Длинное число представить следующим типом:

Type Tsifra = 0..9;

Chislo = Array [1..1000] Of Tsifra;

9.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над векторами в пространстве: 1) сложение; 2) вычитание; 3) скалярное умножение векторов; 4) умножение вектора на число; 5) длина вектора.

Вектор представить следующим типом:

Type Vector = Record X, Y, Z : Real End;

10.

Реализовать в виде модуля набор подпрограмм для вычисления следующих характеристик треугольника при условии, что известны его стороны: 1)периметр; 2) площадь; 3)радиусы вписанной и описанной окружности; 4)медианы; 5)высоты; 6)биссектрисы.

11.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций с матрицами: 1) нахождение номера строки с наибольшей суммой элементов; 2) нахождение номера строки с наименьшей суммой элементов; 3) нахождение номера столбца с наибольшей суммой элементов; 4) нахождение номера столбца с наименьшей суммой элементов;

Матрицу описать следующим образом:

Const N=10, M = 20;

Type Matrica = Array [1..N, 1..M] Of Real;

12.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций с матрицами: 1) сумма элементов; 2) количество четных и нечетных элементов; 3) количество положительных и отрицательных элементов; 4) максимальных и минимальный элементы.

13.

Реализовать в виде модуля набор подпрограмм для выполнения следующих операций со строками: 1) длина строки; 2) количество знаков препинания; 3) количество цифр; 4) количество гласных и согласных букв; 5) количество слов.

3. Подготовить отчет по работе

Требование к отчету

Отчет о проделанной работе должен содержать:

- название и цель работы;

- номер варианта для выполнения задания и условие своего варианта;

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

- тексты программ;

- полученные при расчетах численные результаты;

- письменные ответы на контрольные вопросы.

Теоретический материал

Delphi позволяет программисту поместить свои функции и процедуры в отдельный модуль, а затем использовать процедуры и функции модуля в своих программах, указав имя модуля в списке модулей, необходимых программе (инструкция uses).

Чтобы приступить к созданию модуля, нужно сначала закрыть окно формы и окно модуля формы (в ответ на вопрос о необходимости сохранения модуля следует выбрать No, т. е. модуль, соответствующий закрытой форме, сохранять не надо). Затем из меню File нужно выбрать команду New | Unit. В результате открывается окно редактора кода, в котором находится сформированный Delphi шаблон модуля:

unit Unit1;

interface implementation

end.

Начинается модуль заголовком -- инструкцией unit, в которой указано имя модуля. Во время сохранения модуля это имя будет автоматически заменено на имя, указанное программистом.

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

В раздел implementation (реализация) нужно поместить процедуры и функции, объявленные в разделе interface.

В качестве примера приведен модуль программиста, который содержит функции IsInt и isFioat.

unit my__unit;

interface // объявления процедур и функций,

// доступных программам,

// использующим этот модуль

function IsInt(ch : char) : Boolean;

// функция Islnt проверяет, является ли символ

// допустимым во время ввода целого числа

function IsFloat(ch : char; st: string) : Boolean;

// Функция IsFloat проверяет, является ли символ допустимым

// во время ввода дробного числа

// ch -- очередной символ

// st -- уже введенные символы

implementation // реализация

// проверяет, является ли символ допустимым

// во время ввода целого числа

function Islnt(ch : char) : Boolean;

begin

if (ch >= '0') and (ch <= '9') // цифры

or (ch = #13) // клавиша <Enter>

or (ch = #8) // клавиша <Backspace>

then Islnt := True // символ допустим

else Islnt := False; // недопустимый символ

end;

// проверяет, является ли символ допустимым

// во время ввода дробного числа

function IsFloat(ch : char; st: string) : Boolean;

// ch -- очередной символ // st -- уже введенные символы

begin

if (ch >= '0') and (ch <= '9') // цифры

or (ch = #13) // клавиша <Enter>

or (ch = #8) // клавиша <Backspace>

then

begin

IsFloat := True; // символ верный

Exit; // выход из функции

end; case ch of

'-': if Length(st) = 0 then IsFloat := True; ',':

if (Pos(',',st) = 0)

and (st[Length(st)] >= '0') and (st[Length(st)] <= '9')

then // разделитель можно ввести только после цифры

// и если он еще не введен

IsFloat := True; else // остальные символы запрещены

IsFloat := False; end

// это раздел инициализации // он в данном случае не содержит инструкция end.

Сохраняется модуль обычным образом, т. е. выбором из меню File команды Save. Вместе с тем, для модулей повторно используемых процедур и функций лучше создать отдельную папку, назвав ее, например, Units.

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

Ниже приведен вариант программы Поездка на дачу. Процедура обработки события onKeyPress в полях ввода исходных данных обращается к функции IsFloat, которая находится в модуле my_unit.pas, поэтому в списке используемых модулей указано имя модуля my_unit.

Использование функции из модуля программиста

unit fazenda_;

interface

uses

Windows, Messages, SysUtils, Variants,

Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, my_unit; // модуль программиста

type

TForm1 = class(TForm)

Edit1: TEdit; // расстояние

Edit2: TEdit; // цена литра бензина

Edit3: TEdit; // потребление бензина на 100 км

CheckBoxl: TCheckBox; // True -- поездка туда и обратно

Button1: TButton; // кнопка Вычислить

Label4: TLabel; // поле вывода результата расчета

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

procedure EditlKeyPress(Sender: TObject;

var Key: Char);

procedure Edit2KeyPress(Sender: TObject;

var Key: Char);

procedure Edit3KeyPress(Sender: TObject;

var Key: Char);

procedure Button1Click(Sender: TObject);

private

{ Private declarations} public

{ Public declarations } end;

var

Form1: TForm1;

implementation

{$R *.dfm}

// нажатие клавиши в поле Расстояние

procedure TForml.EditlKeyPress(Sender: TObject;

var Key: Char);

begin

if Key = Char(VK_RETURN)

then Edit2.SetFocus // переместить курсор в поле Цена

else If not IsFloat(Key,Edit2.Text)

then Key := Chr(O);

end;

// нажатие клавиши в поле Цена

procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

if Key = Char(VK_RETURN)

then Edit3.SetFocus // переместить курсор в поле Потребление .

else If not IsFloat(Key,Edit2.Text) then Key := Chr(0);

end;

// нажатие клавиши в поле Потребление

procedure TForm1.EditSKeyPress(Sender: TObject;

var Key: Char);

begin

if Key = Char(VK_RETURN)

then Button1.SetFocus // // сделать активной кнопку Вычислить

else If not IsFloat(Key,Edit2.Text) then Key := Chr(0);

end;

// щелчок на кнопке Вычислить

procedure TForml.ButtonlClick(Sender: TObject);

var

rast : real; // расстояние

cena : real; // цена

potr : real; // потребление на 100 км

summ : real; // сумма

mes: string;

begin

rast := StrToFloat(Editl.Text) ;

cena := StrToFloat(Edit2.Text);

potr := StrToFloat(Edit3.Text);

summ := rast / 100 * potr * cena;

if CheckBoxl.Checked then summ := summ * 2;

mes := 'Поездка на дачу';

if CheckBox1.Checked then

mes : = mes + ' и обратно' ;

mes := mes + 'обойдется в '

+ FloatToStrF(summ,ffGeneral, 4,2) + ' руб.';

Label4.Caption := mes;

end;

end.

После добавления имени модуля в список модулей, используемых приложением, сам модуль нужно добавить в проект. Для этого из меню Project надо выбрать команду Add to Project и в открывшемся диалоговом окне -- имя файла модуля. В результате добавления модуля к проекту в окне редактора появится вкладка с текстом добавленного к проекту модуля.

Увидеть структуру проекта можно в окне Project Manager, которое появляется в результате выбора соответствующей команды из меню View.

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

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

1. Какие разделы имеются в модуле?

2. Какой раздел модуля доступен для программ и других модулей? Какой недоступен?

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

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

5. Имеется ли в разработанном вами модуле раздел инициализации?

6. Назначение раздела инициализации модуля.

7. В каком разделе модуля помещаются тела процедур и функций?

Лабораторная работа 10. Работа с файлами

Цель - закрепление знаний о модулях; разработка модуля и программы с его использованием.

Порядок выполнения работы

1. Ознакомиться с теоретическим материалом.

2. Задача 16,17.

1.

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

2.

Дан файл, содержащий текст на русском языке. Выяснить, входит ли данное слово в указанный текст, и если да, то сколько раз.

3.

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

4.

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

5.

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

6.

Дан файл, содержащий текст, включающий русские и английские слова. Подсчитать, каких букв в тексте больше - русских или латинских.

7.

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

8.

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

9.

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

10.

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

11.

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

12.

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

13.

Дан текстовый файл. Удалить из него все лишние пробелы, оставив между словами не более одного пробела. Результат поместить в новый файл.

3. Задача 28

1.

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

2.

Записать в файл прямого доступа N действительных чисел. Найти наибольшее из значений модулей компонентов с нечетными номерами.

3.

Заполнить файл последовательного доступа f целыми числами, полученными с помощью генератора случайных чисел. Получить в файле g те компоненты файла f, которые являются четными.

4.

Заполнить файл f целыми числами, полученными с помощью генератора случайных чисел. Из файла f получить файл g, исключив повторные вхождения чисел. Порядок следования чисел сохранить.

5.

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

6.

Заполнить файл f натуральными числами, полученными с помощью генератора случайных чисел. Найти количество квадратов нечетных чисел среди компонентов.

7.

Записать в файл последовательного доступа N произвольных натуральных чисел. Переписать в другой файл последовательного доступа те элементы, которые кратны K. Вывести полученный файл на печать.

8.

Записать в файл последовательного доступа N целых чисел, полученных с помощью генератора случайных чисел. Подсчитать количество пар противоположных чисел среди компонентов этого файла.

9.

Заполнить файл последовательного доступа f целыми числами, полученными с помощью генератора случайных чисел. Из файла f получить файл g, исключив повторные вхождения чисел. Вывести файл g на печать.

10.

Заполнить файл f целыми числами, полученными с помощью генератора случайных чисел. Найти количество удвоенных нечетных чисел среди компонентов файла.

11.

Заполнить файл последовательного доступа f целыми числами, полученными с помощью генератора случайных чисел. Получить в файле g все компоненты файла f, которые делятся на m и не делятся на n.

12.

Заполнить файл последовательного доступа N действительными числами, полученными с помощью датчика случайных чисел. Найти сумму минимального и максимального элементов этого файла.

13.

Записать в файл f последовательного доступа N натуральных чисел. Получить в другом файле последовательного доступа все компоненты файла f, кроме тех, которые кратны K. Вывести полученный файл на печать.

4. Подготовить отчет по работе

Требование к отчету

Отчет о проделанной работе должен содержать:

- название и цель работы;

- номер варианта для выполнения задания и условие своего варианта;

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

- тексты программ;

- полученные при расчетах численные результаты;

- письменные ответы на контрольные вопросы.

Теоретический материал

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

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

В общем виде объявление файла выглядит так: Имя:file of ТипЭлементов;

Примеры:

res: file of char; // файл символов

koef: file of real; // файл вещественных чисел

f: file of integer; // файл целых чисел

Файл, компонентами которого являются данные символьного типа, называется символьным, или текстовым. Описание текстового файла в общем виде выглядит так:

Имя:TextFile;

где:

· имя -- имя файловой переменной;

· TextFile -- обозначение- типа, показывающее, что Имя -- это файловая переменная, представляющая текстовый файл.

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

Имя файла задается вызовом процедуры AssignFiie, связывающей файловую переменную с конкретным файлом.

Описание процедуры AssignFiie выглядит следующим образом:

AssignFiie(var f, ИмяФайла: string)

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

Ниже приведены примеры вызова процедуры AssignFiie:

AssignFile(f, 'a:\result.txt');

AssignFile(f, '\students\ivanov\korni.txt');

fname:=('otchet.txt'); AssignFiie(f,fname);

Непосредственно вывод в текстовый файл осуществляется при помощи инструкции write или writeln. В общем виде эти инструкции записываются следующим образом:

write (ФайловаяПеременная, СписокВывода) ;

writeln (ФайловаяПеременная, СписокВывода);

где:

· ФайловаяПеременная -- переменная, идентифицирующая файл, в который выполняется вывод;

· СписокВывода -- разделенные запятыми имена переменных, значения которых надо вывести в файл. Помимо имен переменных в список вывода можно включать строковые константы.

Например, если переменная f является переменной типа TextFiie, то инструкция вывода значений переменных x1 и х2 в файл может быть такой:

write(f, 'Корни уравнения', xl, х2);

Различие между инструкциями write и writeln состоит в том, что инструкция writeln после вывода всех значений, указанных в списке вывода, записывает в файл символ "новая строка".

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

Возможны следующие режимы открытия файла для записи в него данных:

· перезапись (запись нового файла поверх существующего или создание нового файла);

· добавление в существующий файл.

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

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

Ниже приведена процедура, которая запускается нажатием командной кнопки Записать. Она открывает файл в режиме создания нового или замещения существующего файла и записывает текст, находящийся в поле компонента Memo1.

Имя файла нужно ввести во время работы в поле Editl. Можно задать предопределенное имя файла во время разработки формы приложения. Для этого надо присвоить значение, например test.txt, свойству Edit1.Text.

Создание нового или замещение существующего файла

procedure TForm1.Button1Click(Sender: TObject);

var

f: TextFile; // файл

fName: String[80]; // имя файла

i: integer;

begin

fName := Editl.Text;

AssignFile(f, fName);

Rewrite(f); // открыть для перезаписи

// запись в файл

for i: =0 to Memol.Lines.Count do // строки нумеруются с нуля

writeln(f, Memol.Lines[i]);

CloseFile(f); // закрыть файл

MessageDlg('Данные ЗАПИСАНЫ в файл ',mtlnformation,[mbOk],0);

end;

Ниже приведена процедура, которая запускается нажатием командной кнопки Добавить. Она открывает файл, имя которого указано в поле Edit1, и добавляет в него содержимое поля Memol.

Добавление в существующий файл

procedure TForm1.Button2Click(Sender: TObject);

var

f: TextFile; // файл

fName: String[80];.// имя файла

i: integer; begin

fName := Edit1.Text;

AssignFile(f, fName);

Append(f); // открыть для добавления

// запись в файл

for i:=0 to Memo1.Lines.Count do // строки нумеруются с нуля

writeln(f, Memo1.Lines[i]);

CloseFile(f); // закрыть файл

MessageDlg('Данные ДОБАВЛЕНЫ в файл ',mtInformation,[mbOk],0);

end;

Перед завершением работы программа должна закрыть все открытые файлы. Это делается вызовом процедуры close. Процедура close имеет один параметр -- имя файловой переменной. Пример использования процедуры:

Close(f).

Чтение из файла выполняется при помощи инструкций read и readin, которые в общем виде записываются следующим образом:

read( ФайловаяПеременная, СписокПеременных); readin( ФайловаяПеременная, СписокПеременных) ;

где:

· ФайловаяПеременная -- переменная типа TextFile;

· СписокПеременных -- имена переменных, разделенные запятыми.

Следует понимать, что в текстовом файле находятся не числа, а их изображения. Действие, выполняемое инструкциями read или readin, фактически состоит из двух: сначала из файла читаются символы до появления разделителя (пробела или конца строки), затем прочитанные символы, являющиеся изображением числа, преобразуются в число, и полученное значение присваивается переменной, имя которой указано в качестве параметра инструкции read ИЛИ readin.

Например, если текстовый файл а: \data. txt содержит следующие строки:

23 15 45 28 56 71

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

AssignFile(f, 'a:\data.txt');

Reset(f); // открыть для чтения

read(f, а); read(f, b, с); read(f, d);

значения переменных будут следующими: а = 23, b = 15, с = 45, d = 28.

Отличие инструкции readin от read состоит в том, что после считывания из файла очередного числа и присвоения полученного значения переменной, имя которой стоит последним в списке параметров инструкции readin, указатель чтения из файла автоматически перемещается в начало следующей строки файла, даже в том случае, если за прочитанным числом есть еще числа.

Поэтому в результате выполнения инструкций

AssignFile(f,'a:\data.txt'); Reset(f); readin(f, a); readin(f, b, c); readin(f, d);

значения переменных будут следующими: а = 23, b = 45, с = 28, d = 56.

Если при чтении значения численной переменной в файле вместо изображения числа будет какая-то другая последовательность символов, то произойдет ошибка.

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

Например:

stroka1:string[10]; stroka2:string;

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

При чтении из файла значения строковой переменной, длина которой явно не задана в объявлении переменной, значением переменной становится оставшаяся после последнего чтения часть текущей строки. Другими словами, если надо прочитать из файла всю строку, то объявите строковую переменную, длина которой заведомо больше самой длинной строки файла, и считывайте строки в эту переменную.

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

Пусть, например, текстовый файл f reinds. txt содержит строки:

Косичкина Маша Васильев Антон Цой Лариса

В таблицеприведено несколько вариантов объявления переменных, инструкции чтения из файла freinds.txt и значения переменных после выполнения инструкций чтения.

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

Для определения конца файла можно воспользоваться функцией EOF (End of File -- конец файла). У функции EOF один параметр -- файловая переменная. Значение функции EOF равно False, если прочитанный элемент данных не является последним в файле, т. е. возможно дальнейшее чтение. Если прочитанный элемент данных является последним, то значение EOF равно True.

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

Ниже приведена процедура, которая выполняет поставленную задачу. Она читает строки из файла, имя которого ввел пользователь во время работы программы, и выводит эти строки в поле Memo.

unit rd_;

interface

uses

Windows, Messages, SysUtils, Variants, Classes,

Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons;

type

TForm1 = class(TForm)

Button2: TButton;

Edit1: TEdit;

Memo1: TMemo;

Button1: TButton;

procedure Button2Click(Sender: TObject);

procedure ButtonlClick(Sender: TObject); private

{ Private declarations ) public

{ Public declarations } end;

var

Form1: TForml;

implementation

{$R *.dfm}

// щелчок на кнопке Открыть

procedure TForm1.Button1Click(Sender: TObject);

var

f: TextFile; // файл fName: String[80]; // имя файла

buf: String[80]; // буфер для чтения из файла

begin

fName := Edit1.Text; AssignFile(f, fName); {$!-}

Reset(f); // открыть для чтения {$I+}

if IOResult <> 0 then begin

MessageDlgt'Ошибка доступа к файлу ' + fName,

mtError,[mbOk],0); exit; end;

// чтение из файла

while not EOF(f) do begin

readln(f, buf); // прочитать строку из файла

Memo1.Lines.Add(buf); // добавить строку в поле Memo1

end;

CloseFile(f); // закрыть файл

end;

// щелчок на кнопке Сохранить -- запись в файл

procedure TForml.Button2Click(Sender: TObject);

var

f: TextFile; // файл

fName: String[80]; // имя файла

i: integer/; begin

fName := Edit1.Text; AssignFile(f, fName);

Rewrite(f); // открыть для перезаписи

// запись в файл

for i:=0 to Memo1.Lines.Count do // строки нумеруются с нуля

writeln(f, Memo1.Lines[i]);

CloseFile(f); // закрыть файл

MessageDlg('Данные записаны в файл ',mtlnformation,[mbOk],0);

end;

end.

Для организации обработки файла использована инструкция цикла while, которая обеспечивает проверку значения функции EOF перед каждым чтением, в том числе и перед первым.

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

Добавление очередной прочитанной из файла строки в поле Memo выполняется применением метода Add к свойству Lines.

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

1. Какие операции можно производить с данными файла?

2. Что такое физическое имя файла, чем оно отличается от логического имени?

3. Как открыть файл для записи?

4. Что будет, если ранее созданный файл с данными открыть для записи?

5. Чем ограничено количество данных в файле?

6. Чем отличается файл от массива?

7. Как прочесть данные из файла, не зная количества этих данных?

8. Как добавить данные в имеющийся файл?

9. Какой файл, созданный программой, можно просмотреть при помощи текстового редактора?

Размещено на Allbest.ru

...

Подобные документы

  • Обработка сложных структур данных как одна из наиболее распространенных возможностей применения языка программирования С++. Преимущества использования подпрограмм. Передача параметров, одномерных и двумерных массивов, функции и их возврат в функцию.

    курсовая работа [1,1 M], добавлен 24.11.2013

  • Расчет матрицы по заданной формуле. Формирование вектора по алгоритму, построение его вектора. Структура окна С++. Свойства события компонент С++, которые использовались для реализации задачи. Структуры программирования. Блок-схемы алгоритмов подпрограмм.

    курсовая работа [602,7 K], добавлен 26.06.2016

  • Разработка простейших линейных алгоритмов (составление логических выражений), программ с ветвлениями, циклических программ и составление их блок-схем. Практическое выполнение обработки массивов на примере вычисления элементов квадратной матрицы.

    контрольная работа [173,3 K], добавлен 01.03.2010

  • Анализ книги профессора Мюнхенского университета Юргена Плате, посвященной основным понятиям алгоритмизации и принципам написания алгоритмов, основам и правилам составления программ на языке программирования Си. Процесс работы с файлами и указателями.

    анализ книги [170,8 K], добавлен 15.05.2009

  • Составление программы разветвляющейся структуры для вычисления заданной функции. Нахождение произведения чётных и нечётных первых чисел натурального ряда. Приёмы программирования обработки одномерных массивов. Расчет суммы положительных элементов массива.

    контрольная работа [1,3 M], добавлен 20.12.2012

  • Различные способы обработки информации и программирование в среде Pascal. История создания языка. Блок схема с использованием заголовка функций задания. Описание подпрограмм. Сущность структурного программирования в аспекте написания алгоритмов программ.

    курсовая работа [331,9 K], добавлен 18.01.2016

  • Решение задач прикладного программирования. Оформление разработанных алгоритмов в виде графических схем. Написание программ с использованием подпрограмм, их отладка. Блок-схемы и листинг программ. Наборы тестов для отладки разработанных программ.

    курсовая работа [575,8 K], добавлен 06.12.2013

  • Создание работоспособного модуля по работе с мобильными картами АЗС. Разработка базы данных в среде программирования Турбо Паскаль для работы с текстами и файловыми структурами. Описание методов алгоритмизации процессов сортировки и редактирования.

    курсовая работа [1,9 M], добавлен 05.12.2011

  • Базовый синтаксис языка программирования С#. Объявление переменных и присваивание им значений. Управление порядком выполнения программы. Выполнение преобразований с помощью команд преобразования. Определение классов, конструктора, работа с файлами.

    курс лекций [692,5 K], добавлен 23.11.2009

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

    курсовая работа [336,2 K], добавлен 27.06.2015

  • Создание приложения Windows, позволяющего автоматизировать процесс обработки информации студентов университета. Организация работы с физическими файлами в языках программирования. Изучение средств IDE Delphi для организации работы с текстовыми файлами.

    курсовая работа [1,5 M], добавлен 08.11.2011

  • Исследование основных отличий ассоциативных массивов от массивов скаляров. Разработка библиотеки классов. Выбор языка программирования. Сравнение языка C++ с Delphi, Java и JavaScript. Изучение методики тестирования и структуры тестового приложения.

    практическая работа [390,2 K], добавлен 06.01.2013

  • Рассмотрение и ознакомление с одним из наиболее используемых языков программирования - С++. Его применение в процессе работы со строковыми типами данных и символами. Исследование кодов написания программ в режиме разработки консольного приложения.

    курсовая работа [6,1 M], добавлен 20.01.2016

  • Работа с массивами, их ввод и вывод, организация программ циклической структуры. Способы описания и использования массивов, алгоритмы их сортировки, сортировка выбором и вставками. Алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.

    лабораторная работа [14,2 K], добавлен 03.10.2010

  • Разработка и реализация программы расчета заданных функций на языке программирования VBA. Математическая модель, параметры и характеристики задачи, критерии оценки эффективности созданного модуля. Разработка алгоритма и тестирование программного модуля.

    курсовая работа [488,7 K], добавлен 08.09.2010

  • Обзор литературы по темам "JavaScript", "PHP" и "Java". Методические разработки лабораторных работ: документы HTML, фреймы, строка состояния и таймер. Основы синтаксиса и обработка запросов с помощью PHP. Объектно-ориентированное программирование в Java.

    дипломная работа [106,2 K], добавлен 14.10.2012

  • Международный стандарт на язык программирования Паскаль. Приемы объектно-ориентированного программирования в Турбо Паскале. Символы языка, его алфавит. Этапы разработки программы. Понятие алгоритмов и алгоритмизации. Структура программ на Паскале.

    курсовая работа [29,8 K], добавлен 28.02.2010

  • Характеристика основных методов линейного программирования с n- переменными, в частности, графического и симплекс-метода. Способы решения задачи по определению оптимальной структуры товарооборота, обеспечивающей торговому предприятию максимум прибыли.

    курсовая работа [678,7 K], добавлен 03.04.2011

  • Язык Паскаль - процедурно-ориентированный язык высокого уровня, его основные достоинства. Разработка программ для решения задач. Выбор метода обработки информации. Форма представления исходных данных. Разработка алгоритма, его описание, листинг программы.

    курсовая работа [3,6 M], добавлен 17.02.2013

  • Изучение команд для обработки строк, приемов, используемых в работе со строками, приемы их использования. Команды префикса повторения. Приемы программирования на языке Ассемблера с использованием подпрограмм, работа с командами вызова подпрограмм.

    методичка [121,0 K], добавлен 18.12.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.