Помощь в написании студенческих работ
Антистрессовый сервис

Основные приемы работы в среде ТР

ОтчётПомощь в написанииУзнать стоимостьмоей работы

Описание: Вычислить наибольший общий делитель двух натуральных чисел, А и В, использую для этого алгоритм Евклида. Будем уменьшать каждый раз большее из чисел на величину меньшего до тех пор, пока оба числа не станут равными. Описание: номер клетки на шахматной доске 8×8 определяется двумя целыми числами — номер вертикали и номер горизонтали. Даны 4 целых положительных числа a, b, c, d. Выяснить… Читать ещё >

Основные приемы работы в среде ТР (реферат, курсовая, диплом, контрольная)

Актюбинский Политехнический колледж

Отчет

по учебной практике

по программированию

Выполнила:

Волоснова А. С

учащаяся

группы 202АС

Проверила:

Гайсагалеева Б. М

Актобе 2010

ДНЕВНИК.

ДАТА

ТЕМА

ПРОДЕЛАННАЯ РАБОТА

ПРОВЕРКА

14.06.10

Виды загрузки. Основные приемы работы в среде ТР. Редактирование текста программы, процесс отладки.

Изучили основные виды загрузки и приемы работы в ТР и процесс отладки.

14.06.10

Изучение команд редактирования отладки программ с помощью командного меню Pascal.

Изучили команды редактирования отладки программ с помощью командного меню Pascal.

14.06.10

Оформление программы. Разделы. Описание разделов. Назначение каждой части программы.

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

15.06.10

Разработка постановки задачи. Разработка простейших программ с использованием команд присваивания, ввода, вывода.

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

15.06.10

Форматы ввода, вывода. Команды Read, Readln, Write, Writeln.

Изучили форматы ввода и вывода и команды Read, Readln, Write, Writeln.

15.06.10

Определение типов данных. Объявление данных. Константы. Метки. Комментарии. Разделители. Признаки концов строк на Pascale

Изучили различные типы данных и признаки концов строки на Pascal

16.06.10

Команды ветвления. Полные и не полные команды ветвления.

Изучили полную и не полную формы команд ветвления.

16.06.10

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

Изучили различные виды составных операторов.

16.06.10

Виды выражения. Сравнения с текстовых и числовых условий.

Изучили виды выражений и сравнения с текстовыми и числовыми условиями.

17.06.10

Составные условия. Оформления составных условий. Союзы составных условий. Примеры применения составных условий.

Изучили составные условия их оформление и применение.

17.06.10

Решение задач по выбору функции по значению аргумента. Команда выбора. Определение принадлежности точки к фигуре, к функции. Словесные условия.

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

17.06.10

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

Решали задачи по ограничению отладки

18.06.10

Организация цикла с условием продолжения. Составные операторы в цикле WHILE DO. Применение. Решение задач. Блок-схема. Отладка.

Изучали составные операторы в цикле WHILE DO. Решали задачи.

18.06.10

Оператор цикла с условием окончания UNTIL, REPEAT. Правила применения.

Изучили оператор цикла с условием окончания UNTIL, REPEAT. Решали задачи.

18.06.10

Решения задач. Блок-схема. Отладка. Результаты.

Решение задач.

19.06.10

Оператор цикла с параметром FOR TO DO. Правила применения. Составные операторы в цикле. Решение задач с использованием оператора цикла с параметром.

Изучили оператор цикла с параметром FOR TO DO. Решение задач.

19.06.10

Нахождение суммы, произведения элементов ряда. Параметр цикла.

Научились находить сумму и произведение элементов ряда.

19.06.10

Цикл с параметром, с выборкой конца. Применение.

Изучили оператор цикла с параметром

21.06.10

Производные типы. Одномерные массивы. Типы индекса. Использование значений регулярного типа.

Рассмотрели одномерные массивы, производные типы. Выполнили практическую работу.

21.06.10

Многомерные массивы.

Рассмотрели многомерные массивы. Выполнили практическую работу.

21.06.10

Синтаксис задания регулярного типа.

Изучили синтаксис регулярного типа

22.06.10

Двумерный массивы. Матрица матриц. Создание формирование и работа с двумерными массивами. Поиск элементов в матрицах.

Изучили двумерный массив и работу с двумерным массивом.

22.06.10

Упорядочивание и сортировка элементов. Решение задач на матрицы.

Научились сортировать элементы массива. Решали задач на матрицы.

22.06.10

Составление программ с использованием матриц.

Составляли программы с использованием матриц.

23.06.10

Процедуры без параметров. Процедуры с параметрами. Параметры — значение. Параметрыпеременные

Изучили разные виды процедур: с параметрами, без параметров, параметрызначение, параметрпеременные.

23.06.10

Параметры произвольных типов. Синтаксис процедур.

Рассмотрели параметры произвольных типов. И синтаксис процедур.

23.06.10

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

Изучили оператора процедуры и его применение.

24.06.10

Описание процедурыфункции. Вызов функции. Побочные эффекты. Рекурсивные функции.

Изучили описание процедурыфункции, её вызов. Побочные эффекты.

24.06.10

Параметрыфункции и параметрыпроцедуры.

Изучили параметрыфункции и параметрыпроцедуры.

24.06.10

Процедуры и шаговая детализация.

Рассмотрели шаговую детализацию.

25.06.10

Строковые величины. Работа со строковыми величинами. Формирование строк с учетом конца строки. Подсчет, замена элементов. Удаление символов, ведущих, ведомых пробелов. Поиск нужного символа.

Научились работать со строковыми величинами.

25.06.10

Работа со стандартными функциями строкConcat, Copy, Insert, Delete, POS, Length.

Научились работать со стандартными строковыми функциями: Concat, Copy, Insert, Delete, POS, Length.

25.06.10

Функции STR, Val, UpCase.

Изучили функции: STR, Val, UpCase.

26.06.10

Простейшие комбинированные типы. Описание комбинированных типов. Работа с элементами комбинированного типа. Выборка элементов.

Изучили простейшие комбинированные типы, их описание, принцип работы.

26.06.10

Многоуровневые записи.

Изучили многоуровневые записи

26.06.10

Оператор присоединения.

Изучили оператор присоединения.

28.06.10

Обозначение множеств в Паскале. Задание множественного типа и множественная переменная. Операции над множествами.

Изучили множества в Паскале.

28.06.10

Процедуры работы с множествами.

Изучили процедуры работы с множествами.

28.06.10

Примеры использования множественного типа

Рассмотрели примеры множественного типа

29.06.10

Файлы и работа с ними. Доступ к файлам. Имена файлов. Файлы логических устройств. Инициация файла.

Изучили файлы, доступ к ним, их имена.

29.06.10

Процедуры и функции для работы с файлами Reset, Rewrite, Append, Assign

Изучили процедуры и функции для работы с файлами: Reset, Rewrite, Append, Assign

29.06.10

Процедуры и функции для работы с файлами Reset, Rewrite, Append, Assign

Изучили процедуры и функции для работы с файлами: Reset, Rewrite, Append, Assign

30.06.10

Текстовые файлы. Их объявление. Работа с ними.

Изучили текстовые файлы, и работу с ними.

30.06.10

Буферная переменная и её использование.

Изучили буферную переменную.

30.06.10

Буферная переменная и её использование.

Изучили буферную переменную.

01.07.10

Работа с графикой в Паскале. Графический режим. Установка драйверов графики. Инициализация драйверов графики. Описание драйверов.

Выполняли работы в графическом режиме Паскаль.

01.07.10

Команды вычеркивания точек, линей, окружностей, дуг, секторов и простых геометрических фигур.

Изучили команды вычеркивания простых геометрических фигур.

01.07.10

Команды вычеркивания точек, линей, окружностей, дуг, секторов и простых геометрических фигур.

Изучили команды вычеркивания простых геометрических фигур.

02.07.10

Модуль Граф. Модули установки цветов. Модули выбора стилей заливокSetLineStile, SetFileStile, FlodFileStile.

Изучили модуль Граф. И различные модули заливки и стилей.

02.07.10

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

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

03.07.10

Разработка программы графики с использованием всех модулей Граф.

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

03.07.10

Разработка программы графики с использованием всех модулей Граф.

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

03.07.10

Модули работы с текстом в графическом режиме. Модуль CRT. Системный модуль System.

Изучили принцип работы в графическом режиме.

1. Линейная программа на Паскаль.

2. Программа с ветвлениями.

3. Циклическая программа.

4. Массивы.

5. Процедуры и функции.

6. Файловые данные в Паскале.

7. Записи в Паскале.

8. Строки.

9. Графика в Турбо-Паскале.

Раздел: Линейные алгоритмы

1.Описание: Программа вычисления периметра треугольника.

program one;

uses crt;

var a, b, P:integer;

begin clrscr;

writeln ('a=');

readln (a);

writeln ('b=');

readln (b);

P:=(a+b)*2;

writeln ('P=', P);

end.

2.Описание: Программа вычисления площади треугольника.

program one;

uses crt;

var a, b, h, s: real;

begin clrscr;

writeln ('A= B= H= ');

readln (a, b, h);

s:=h*(a+b)/2;

writeln ('S=', s:0:4);

readln;

end.

3.Описание: Программа вычисления количества теплоты по формуле 'Q=c*m*(t2-t1)

program one;

uses crt;

var Q, c, m, t2, t1:integer;

begin clrscr; textcolor (10);

writeln ('c=');

readln (c);

writeln ('m=');

readln (m);

writeln ('t2=');

readln (t2);

writeln ('t1=');

readln (t1);

Q:=c*m*(t2-t1);

writeln ('Q=c*m*(t2-t1)=', Q);

end

4.Описание: Программа вычисления величины силы тока I на участке цепи с R Ом и U В.

program one;

uses crt;

var I, U, R:real;

begin clrscr; textcolor (10);

writeln ('U='); readln (U);

writeln ('R=');

readln ®;

I:=U/R;

writeln ('I=', I:5:0);

end.

5.Описание: Программа вычисления расстояния между двумя точками с данными координатами x1,y1,x2,y2

program one;

uses crt;

var r: real; x1, x2,y1,y2:integer;

begin clrscr;

writeln ('znachenie x1=');

readln (x1);

writeln ('znachenie x2=');

readln (x2);

writeln ('znachenie y1=');

readln (y1);

writeln ('znachenie y2=');

readln (y2);

r:=sqrt (sqr (x2-x1)+sqr (y2-y1));

writeln ('rasstoyanie=', r);

end.

6.Описание: Известна сумма денег, имеющаяся у покупателя и стоимость одной ед. товара. Сколько ед. товара может купить покупатель и какова его сдача?

program one;

uses crt; var a, b, c:real; begin clrscr;

writeln ('summa deneg=');

readln (a);

writeln ('cena ed. tovara=');

readln (b);

c:=a/b;

writeln ('ostatok=', c);

end.7.Описание: Сумма цыфр введенного трехзначного натурального числа.

program one;

uses crt;

var a: integer; s, d, e, f: real;

begin clrscr;

writeln ('vvedi 3-hznachnoe chislo');

readln (a);

s:=a div 100;

d:=a mod 100 div 10;

e:=a mod 100 mod 10;

writeln (d:5:0); writeln (s:5:0); writeln (e:5:0);

f:=d+s+e; writeln (f:5:0);

end.

8.Описание: Найти площадь по известной стороне равностороннего треугольника.

program one;

uses crt;

var a, S: real;

begin clrscr;

writeln ('Vvedite storonu treugolnika');

readln (a);

S:=0;

S:=a*a*sqrt (3)/4;

writeln ('Ploshad ravna:', S:3:1);

readln;

end.

9.Описание: Бабушка вяжет в неделю 3 пары детских носков, пару женских и пару мужских и продает их. Считая, что в месяце 4 недели, определить, какую прибыль бабушка имеет за месяцю.

program one;

uses crt; var det, jen, muj, ned, mes: integer;

begin clrscr;

writeln ('det:=');

readln (det);

writeln ('jen:=');

readln (jen);

writeln ('muj:=');

readln (muj);

ned:=muj+jen+det;

mes:=4*ned;

writeln ('dohod=', mes);

end

10.Описание: Пирамида из звездочек

program one;

uses crt;

var j, i: integer;

begin clrscr;textcolor (9+5);

for i:=1 to 25 do begin gotoxy (40-i, i);

for j:=2 to 2*i do write ('*');

end;

readln;

end.

11.Описание:Вычислить произведение

Program one;

Uses crt;

Var a, b, p:integer;

begin clrscr;textcolor (9+5);

writeln ('a= b=');

readln (a, b);

p:=a*b;

textcolor (9+16);

writeln (`p=, p');

end.

12.Описание: Вычисление радиуса

Program one;

Uses crt;

Var l: real; r: integer;

begin clrscr;textcolor (5);

writeln ('R=');

readln ®;

l:=2*pi*r;

writeln (`radius=, r');

end.

13.Описание: Вычисление периметра квадрата

Program one;

Uses crt;Var а: integer;

begin clrscr;textcolor (5);

writeln ('a=');

readln (a);

p:=4*a;

writeln (`perimetr=, р');

end.

14.Описание: Выведение введенного числа

Program one;

Uses crt;Var s: integer;

begin clrscr;textcolor (5);

writeln ('s=');

readln (s);

writeln (`вы ввели число, s');

end.

15.Описание: Вычисление плотности по количеству жителей и площади.

Program one;

Uses crt;Var k, s: integer; p: real;

begin clrscr;textcolor (5);

writeln ('число жителей=');

readln (k);

writeln (`plosh=');

readln (s);

p:=s/k;

writeln (`plotnost=', p);

end.

Раздел: Разветвляющиеся алгоритмы

1.Описание: Вычисление уравнения

program one;

var x, y: integer;; begin write ('x='); readln (x); if x>0 then y:=sqr (sin (x)) else y:=1−2*sin (sqr (x)); writeln (y); end.

2.Описание: Деление нацело

Program ch;

Uses crt;

Var a, m, n:integer;

Begin clrscr;

Writeln (`m= n=');

Readln (m, n);

a:=m mod n;

If a=0 then write (m div n)

Else write (`net resh')

End.

3 .Описание: Написать программу на языке Pascal для реализации разветвляющегося алгоритма, где x — известные величины.

program one;

var x, y: real;

begin writeln ('');

write ('Vvedite x=');

readln (x); if x<=0.8 then

y:=exp (x-1)+3.14 else if (0.8<=5.27) then

y:=ln (x+5.96) else y:=2*x;

writeln ('y=', y:4:2); readln;end.

4. Описание: Написать программу на языке Pascal для реализации разветвляющегося алгоритма, где x — известные величины.

program one; var x, y, z:real; begin writeln (''); write ('Vvedite x='); readln (x); write ('Vvedite y='); readln (y);

if x-y>0 then z:=1/(x*y) else z:=sqr (x)*sqr (y); writeln ('z=', z:4:2); readln; end.

5 .Описание: Написать программу на языке Pascal для реализации разветвляющегося алгоритма, где x=ln a2, y=1/arctg b; a, b — известные величины. program one; var x, y, z, a, b:real; begin writeln (''); write ('Vvedite a='); readln (a); write ('Vvedite b='); readln (b); x:=ln (sqr (a)); y:=1/arctan (b); if x-y>0 then z:=1/(x*y) else z:=sqr (x)*sqr (y); writeln ('z=', z:4:2); readln; end.

6. Описание: Заданы два прямоугольных параллелепипеда. Можно ли разместить их один в другом?program one; var a1, a2,b1,b2,c1,c2:integer; begin writeln ('vvedite shiriny, dliny, vusoty 1');

readln (a1,b1,c1); writeln ('vvedite shiriny, dliny, vusoty 2'); readln (a2,b2,c2); if ((a1<=a2) and (b1<=b2) and (c1<=c2)) or ((a1>a2) and (b1>b2) and (c1>c2)) then writeln ('mogno') else writeln ('nelzya'); readln; end.

7. Описание: номер клетки на шахматной доске 8×8 определяется двумя целыми числами — номер вертикали и номер горизонтали. Даны 4 целых положительных числа a, b, c, d. Выяснить, бьет ли ферзь, находящийся на клетке (a, b) клетку (c, d)

program one; var a, b, c, d: integer; begin read (a, b); read (c, d); if (a=c) or (b=d) or (abs (c-a)=abs (d-b))

then write ('ga') else write ('HeT');

readln

end

8. Описание: Возможно, ли построить треугольник с данными сторонами

program one;

uses crt;

var a, b, c:real;

begin clrscr;

writeln ('Стороны треугольника= ');

readln (a, b, c);

if (a

and (c

else write ('невозможно');

readkey;

end.

9 .Описание: Даны три неравных числа a, b, c. Составить программу нахождения квадрата большего из этих чисел.

program one; var a, b, c:real; begin read (a, b, c); if (a>b) and (a>c) then write ('a2= ', a*a:1:4); if (b>a) and (b>c) then write ('b2= ', b*b:1:4); if (c>a) and (c>b) then write ('c2= ', c*c:1:4); readln end.

10.Описание:Вычисление большего из двух чиселProgram b_ch;

Uses crt;

Var a, b: integer;

Max:integer;

Begin clrscr;

Writeln (`a= b=');

Readln (a, b);

If a>b then max:=a else max:=b

Writeln (`max=', max);

End.

11.Описание:Вычисление меньшего из двух чисел

Program m_ch;

Uses crt;

Var a, b: integer;

Min:integer;

Begin clrscr;

Writeln (`a= b=');

Readln (a, b);

If a

Writeln (`min=', min);

End.

12.Описание:Деление нацело

Program ch;

Uses crt;

Var a, b, c:integer;

Begin clrscr;

Writeln (`a= b=');

Readln (a, b);

C:=a mod b;

If c=0 then write (a div b)

Else write (`net resh')

End.

13.Описание: Сравнение чисел трехзначного числа

Program ch;

Uses crt;

Var a, b, c, d, e, i: integer;

Begin clrscr;

Writeln (`a=');

Readln (a);

D:=a div 100;

E:=b mod 100 div 10;

C:=I mod 10;

writeln (d, e, c);

if (a

else writeln (`ne ravny');

End.

14.Описание: Принадлежит ли число интервалу

Program ch;

Uses crt;

Var a: integer;

Begin clrscr;

Writeln (`a=');

Readln (a);

if (a>=(-5)) and (a<=3) then writeln (`prinadl')

else writeln (` ne prinadl');

End.

15.Описание:Сравнить 3 стороны треугольника

Program ch;

Uses crt;

Var a, b, c:integer;

Begin clrscr;

Writeln (`a= b= c=');

Readln (a, b, c);

if (a=c) or (a=b) then writeln (`ravnobedr')

else writeln (` ne ravnobedr');

End.

Раздел: Алгоритмы циклической структуры:

1.Описание: Написать программу на языке Pascal для реализации циклического алгоритма n, х — известные величины.

var i, j, fact, n: integer;

s, x: real;

begin

writeln;

write ('Vvedite n=');

readln (n);

write ('Vvedite x=');

readln (x);

s:=0;

for i:=1 to n do begin fact:=1;

for j:=1 to i do Fact:=fact*j;

s:=s+(1/fact+sqrt (abs (x)));

end;

writeln ('s=', s:4:2);

readln;

end.

2.Описание: Написать программу на языке Pascal для реализации циклического алгоритма

n — известные величины. program one;

var i, j, n, zn, factorial: integer; s, x: real; begin writeln; write ('Vvedite n='); readln (n); s:=0; factorial:=1; zn:=1; for i:=1 to n do begin zn:=zn*(-1); factorial:=factorial*i; s:=s+(zn*(i+1)/factorial); end; writeln ('s=', s:4:3); readln; end.

3.Описание: Написать программу на языке Pascal для реализации циклического алгоритма

s=1/1*2−½*3+…+(-1)n+1/n (n+1) n — известные величины.

program one;

var i, j, n, zn: intege r; s, x: real; begin writeln; write ('Vvedite n='); readln (n); s:=0; zn:=-1; for i:=1 to n do begin zn:=zn*(-1); s:=s+zn/(i*(i+1)); end; writeln ('s=', s:4:2); readln; end.

4.Описание: Написать программу на языке Pascal для реализации циклического алгоритма

n — известные величины. program one;

var i, j, n:integer; stepen: integer; s: real; begin writeln; write ('Vvedite n='); readln (n); s:=0; for i:=1 to n do begin stepen:=1; for j:=1 to 5 do begin stepen:=stepen*i; end; s:=s+1/stepen; end; writeln ('s=', s:4:2); readln; end.

5. Описание: Написать программу, которая выводит целые четные числа с клавиатуры и складывает их, пока не будет введено число 0.

Program 5;

Uses crt;

Var n, s: integer.;

Begin clrscr;

S:=0;

Repeat;

Writeln (vvedi chislo);

Readln (n);

S:=s+n;

Until n=0;

Writeln (s=, s);

Readln;

End.

6. Описание: Составить программу, подсчета суммы S первых 1000 членов гармонического ряда 1+½+1/3+…+1/N

Program 1;

Uses crt;

Var s: real; n;integer;

Begin clrscr;

S:=0; n:=0;

Repeat;

N:=n+1;

S:=s+1/n;

Until n=1000;

Writeln (s);

End.

7. Описание: Напечатать 20 первых степеней числа 2.

Program 2;

Uses crt;

Var n, s: longint;

Begin clrscr;

S:=1;

N:=1;

Repeat S:=s*2;

Writeln (s,);

N:=n+1;

Until n>20; Readln;

End.

8. Описание:Известны оценки по информатике каждого из 20 учеников класса. В начале списка Перечислены все «5», затем остальные оценки. Сколько учеников имеют оценку «5»?

Program 5;

Uses crt;

Var x, n: word;

Begin clrscr;

Writeln (vvedi ocenki);

Readln (x);

N:=0;

While x=5 do begin n:=n+1;

Writeln (vvedi ocenki);

Readln (x);

End;

Writeln (imeyut 5, n, uchenikov);

Readln;

End.

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

Program nod;

Uses crt;

Var a, b: integer;

Begin clrscr;

Writeln (vvedi 2 chisla);

Readln (a, b);

While a<>b do if a>b then a:=a-b else b:=b-a;

Writeln (nod=, a);Readln;

End.

10.Описание: Программа подсчета суммы S первых 1000 членов гармонического ряда 1+½+1/3+¼+…+1/N

Program S;

Uses crt;

Var s: real;n:integer;

Begin clrscr;

S:=0; N:=0;

While n<1000 do begin N:=n+1;

S:=s+1/n;

End;

Writeln (s);

Readln;

End.

11.Описание:Имеется четыре (A, B, C, D) числа. Необходимо ответить на вопрос:«Правда ли что все среди этих чисел есть равные?"Ответ вывести в виде текста:«Правда», или «Неправда».

Program z1;

var a, b, c, d: integer; {описываем имеющиеся переменные}

begin writeln ('vvedite chislo a'); {вводим все числа по очереди}

readln (a);

writeln ('vvedite chislo b');

readln (b);

writeln ('vvedite chislo c');

readln (c);

writeln ('vvedite chislo d');

readln (d);

if (a=b)or (a=c) or (a=d)or (b=c) or (b=d) or (d=c) then writeln ('pravda') else writeln ('nepravda');

readln;

end.

12.Описание: Составить программу вычисления и выдачи на печать суммы (произведения) N элементов бесконечного ряда. Оформить проверку задания. Y=(-512)*256*(-128)*64… Общая формула имеет вид: y=210-i

program z2;

var i, j, zn, n: integer; s: real;

begin writeln;

writeln ('vvedite kolichestvo elementov ryada');

write ('N='); {вводим количество элементов ряда}

readln (n);

s:=1;

for i:=1 to n do begin zn:=1;

for j:=1 to i+1 do begin zn:=zn*(-1);

end;

s:=s*(-zn)*(exp ((10-i)*ln (2))); {вводим формулу}

end;

writeln ('s=', s:4:2);

readln;

end.

13.Описание: Дана функция Y=1-[x-2]^2/10 вычислить и напечатать значения этой функции для последовательных значений x=c,x=c+(b+1), x=c+2(b+1),x=c+3(b+1) где а=1; b=9;с=2. Считать до тех пор пока сумма Y+6 не станет отрицательной.

program zad3;

const b=9; c=2;

var x, n: integer; f, s: real; function y (x:integer):real;

begin y:=1-(sqr (x-c)) / (b+1);

end;

begin writeln ('Y=1-[x-2]^2/10');

n:=0;

repeat x:=c+n*(b+1);

inc (n);

f:=y (x);

write ('x', n,'= ', x,' ');

writeln ('y', n,'= ', f:6:5)

until f+6<0;

readln

end.

14.Описание: Имеется массив, А из N произвольных чисел (A(n)), среди которых есть положительные, отрицательные и равные нулю. Напечатать только те числа из массива которые больше предыдущего числа.

program z4;

uses Crt;

const MAX = 100;

var mas: array[1.MAX] of integer; n, i: byte; k, p: integer;

begin ClrScr;

Write ('N:=');

Readln (n);

for i:=1 to n do begin Write ('vvedite ', i,' element massiva:>');Readln (mas[i]); end;

begin k := 0;

for i := 1 to n do begin if mas[i]>mas[(i-1)] then writeln (mas[i]); end;

readln; end;

end.

15.Описание: Составить программу вычисления числового ряда для известного числа членов ряда N. Y=(7+35/1)(8−3-4/2)(9+33/3)…

program z5;

var i, j, zn, n: integer; s: real;

begin writeln;

writeln ('vvedite kolichestvo elementov ryada');

write ('N=');

readln (n);

s:=1;

for i:=1 to n do begin zn:=1;

for j:=1 to i+1 do begin zn:=zn*(-1);end;

s:=s*((6+i)+exp ((zn*(6-i))*ln (3))/i);end;

writeln ('s=', s:4:2);

readln;

end.

Раздел : Массивы

1 Описание: Найти, сколько раз каждый элемент встречается в массиве

Дополнительных массивов не создавать.

Program msv;

Const Size=10; Diap=10;

var a: array [1.Size] of integer; i, n, k, j: integer;

begin writeln;

repeat write ('Введите размерность 1 массива (от 2 до ', Size,'):');

Read (n);

Until (n>1) and (n<=Size); Randomize;

a [1]: =Random (Diap);

Write ('A= ', a[1],' ');

For i: =2 to n do begin A[i]: =Random (Diap);

Write (a[i],' '); End;

writeln;

k:=0;

For i: =1 to n do if a[i]=0 then Inc (k);

If k>0 then writeln ('0: ', k);

For i: =1 to n-1 do if a[i]<>0 then begin K: =1;

For j: =i+1 to n do if a[i]=a[j] then begin A[j]: =0;

Inc (k); End;

writeln (a[i],': ', k); end;

end.

2. Описание: Объединить 2 упорядоченных массива по возрастанию.

Program msv;

const Size=10; Step=5;

var a, b: array [1.Size] of integer; c: array [1.2*Size] of integer; i, n1, n2,ia, ib, ic: integer;

begin writeln;

repeat write ('Введите размерность 1 массива (от 2 до ', Size,'):');

read (n1);

until (n1>1) and (n1<=Size);

Randomize;

a[1]: =Random (Step);

write ('A= ', a[1],' ');

for i:=2 to n1 do begin a[i]: =a[i-1]+Random (Step);

write (a[i],' '); end;

writeln;

repeat

write ('Введите размерность 2 массива (от 2 до ', Size,'):');

read (n2);

until (n2>1) and (n2<=Size);

b[1]: =Random (Step);

write ('B= ', b[1],' ');

for i:=2 to n2 do begin b[i]: =b[i-1]+Random (Step);

write (b[i],' ');

end;

writeln;

ia:=1; ib:=1;

write ('C= ');

for i:=1 to n1+n2 do begin if a[ia]<=b[ib] then begin c[i]: =a[ia];

if ia

if ib

else begin c[i]: =b[ib];

if ib

if ia

write (c[i],' ');

end;

writeln;

end.

3. Описание: Дан массив чисел. Найти наибольшее.

Program msv;

Uses crt;

Var i, n, max:integer; a: array[1.100] of integer;

begin clrscr;

read (n);

for i:=1 to n do read (a[i]); {ввод чисел в массив}

max:=a[1];

for i:=2 to n do if a[i] > max then max:=a[i]; {сравнивается с уже найденным наибольшим,}

write ('maksimalnoe chislo = ', max);

readln;

end.

4. Описание: Найти сумму элементов числового массива

Program msv;

uses crt;

Var i, n, s:integer; a: array[1.1000] of integer;

begin clrscr;

read (n);

for i:=1 to n do read (a[i]); {ввод значений в массив}

s:=0;

for i:=1 to n do s:=s+a[i];

write ('Summa = ', s); readln;

readln;

end.

5. Описание: Дан числовой массив. Вычислить сумму элементов, имеющих четное значение индекса. Вычислительную часть организовать в виде функции

Program msv;

Uses crt;

type mas=array[1.100] of integer;

Var a: mas; i, n: integer; function calc (b:mas;m:integer):integer;

var i, s: integer;

begin s:=0;

for i:=1 to m do;

if i mod 2=0 then s:=s+b[i];

calc:=s;

end;

begin clrscr;

read (n);

for i:=1 to n do read (a[i]);

write ('Сумма каждого второго элемента = ', calc (a, n));

readln;

readln;

end.

6. Описание: Дан массив символов. Вычислить, сколько в нем элементов 'a'

Program msv;

Uses crt;

Var i, n, s:integer; a: array[1.100] of char;

begin clrscr;

readln (n); {Объявление а: array[1.1000] of char означает,}

for i:=1 to n do readln (a[i]);

s:=0;

for i:=1 to n do readln (a[i]);

s:=0;

for i:=1 to n do if a[i]='a' then s:=s+1;

write ('Kolichestvo elementov ravnyh «a» = ', s);

readln;

end.

7. Описание: Дан двумерный массив целых чисел размерностью NxN. Найти сумму его элементов

Program msv;

Uses crt;

Var s, i, j, n: integer; a: array[1.10,1.10] of integer;

begin clrscr;

read (n);

for i:=1 to n do for j:=1 to n do read (a[i, j]);

for i:=1 to n do for j:=1 to n do s:=s+a[i, j];

write ('Сумма элементов = ', s);

readln;

readln;

end.

8. Описание: По заданному массиву X[7] сформировать массив Y, элементы которого вычисляются по формуле

Y[i]= |X[i]-B|, где B — максимальный элемент массива X

program msv;

const Size=7; { Размерность массива }

var x: array [1.Size] of real; b: real; i: integer;

begin writeln;

writeln ('Жду ввода элементов массива размерностью ', Size,':');

for i:=1 to Size do begin write ('x[', i,']=');

readln (x[i]); end;

b:=x[1];

for i:=2 to Size do if x[i]>b then b:=x[i];

writeln ('Максимальный элемент=', b:10:3);

writeln ('Исходный Новый');

writeln ('массив массив');

for i:=1 to Size do begin write (x[i]: 10:4);

x[i]: =abs (x[i]-b);

writeln (x[i]: 10:4); end;

end.

9. Описание: Найти максимальный элемент в линейном массиве.

Вывести результат на экран

program msv;

uses crt;

const

nn = 10; var max, i: integer; a: array[1.nn] of integer; begin clrscr;

for i := 1 to nn do a[i] := random (500);

max := a[1];

for i := 2 to nn do if a[i] > max then max := a[i];

for i := 1 to nn do write (a[i], ' '); writeln;

writeln ('Max = ', max);

readkey;

end.

10. Описание: Отсев. Удалить в заданном массиве x(n) лишние (кроме первого) элементы так, чтобы оставшиеся образовывали возрастающую последовательность (за один просмотр массива)

program msv;

uses crt;

const n = 10; {dlina massiva}

var a: array[1.n] of integer; i, max, j, k, mi: integer; begin clrscr; randomize;

for i := 1 to n do begin a[i] := random (51);

write (a[i], ' '); end;

max := a[1];

k := 2; {t.k. uslovie zadachi «preobarzovat' za odin prosmotr massiva», to}

{k ne mozhet bit' bol’she N, chem mi vospol’zuemsya v cikle}

for i := 2 to n do begin if k > n then break;

if a[i] <= max then {esli a[i] <= max to udalyaem etot element}

begin for j := i to n — 1 do {etogo cikl mog bi ne viiti, no u nas est' K}

a[j] := a[j + 1];

dec (i); end;

if a[i] > max then begin max := a[i];

mi := i; {MI — poziciya maksimuma v massive} end;

inc (k); {uvelichivaem K, k = [2.n]} End;

Write (#10#13, a[1], ' ');

For i: = 2 to mi do Write (a[i], ' ');

readkey;

end.

11. Описание: В массиве X из n элементов каждый из элементов равен 0, 1 или 2. Переставить элементы массива так, чтобы сначала располагались нули, затем единицы и двойки. Дополнительный массив не использовать.

Программа расширена для возможности переставлять элементы массива, являющимися любыми числами (не только 0, 1, 2)

Program msv;

Const n = 10; {кол-вл элементов массива}

var a, b, t: integer; X: array[1.n] of integer; {сам массив из n элементов}

BEGIN For a := 1 to n do {ввод массива X} Begin Write ('Введите X [', a, ']: ');

Readln (X[a]); End;

for a := 1 to n do begin t := X[a];

b := a — 1;

While (b>=0) and (t

B: = b — 1; End;

X [b+1]: = t; end;

for a := 1 to n do {вывод результата}

Write (X[a]: 2);

END. {конец программы}

12. Описание: Операции с массивом, сортировка суммирование. В одномерном массиве, состоящем из N вещественных элементов, вычислить:1) количество элементов массива, равных 0;2) сумму элементов массива, расположенных после минимального элемента.

Упорядочить элементы массива по возрастанию модулей элементов.

Program msv;

Uses CRT;

Const N = 10; {сколько всего элементов}

Var a: Array[1.N] of Real; i, j: Byte; Zero: Byte; Min: Real; Summ: Real;

Procedure Print;

Begin For i := 1 to N do Write (a[i]: 0:1,' ');

Writeln;End;

Procedure CreateMassive;

BeginWriteln ('Исходная последовательность');

For i := 1 to N do Begin a[i] := Random (4);

a[i] := a[i] - 2; {Этот и предыдущий операторы можно объединить}

End;

Print;

Writeln;End;

Begin ClrScr;Randomize;

CreateMassive;

Min := a[1];

For i := 2 to N do Begin Summ := Summ + a[i];

If (a[i] < Min) then Begin Min := a[i];

Summ := 0; End; End;

Writeln ('Минимальный элемент ', Min:0:1,'. Сумма элементов после: ', Summ:0:1);

For i := 1 to N do Begin For j := i + 1 to N do If (abs (a[j]) < abs (a[i])) then Begin a[i] := a[i] + a[j];

a[j] := a[i] - a[j];

a[i] := a[i] - a[j]; End; End;

Writeln (#13#10,'Отсортировання последовательность'); Print;

For i := 1 to N do If a[i] = 0 then Inc (Zero);

Write (#13#10,'Нулевых элементов: ', Zero);ReadKey;

End.

13. Описание: Вычислить угол между двумя заданными векторами размерности 8, используя функцию скалярного произведения a = arccos((x,y)/((x,x)*(y,y)))

program msv;

uses crt;

type TVector = array[1.8] of Real;

function scal (var Vec1, Vec2: TVector):real; var p: Real; i: integer;

begin p:=0;

for i:=1 to 8 do p:=p+(Vec1[i]*Vec2[i]);

scal := p;end;

var Vec1, Vec2: TVector; i: integer; sc, a, angle: Real;

BEGIN writeln ('Условие:');

writeln (' вычислить угол между двумя заданными векторами размерности 8,');

writeln (' используя функцию скалярного произведения');

writeln;

Writeln ('Ввод первого вектора');

for i := 1 to 8 do begin Write ('Vec1[', i, ']: ');

Readln (Vec1[i]); end;

Writeln ('Ввод второго вектора');

for i := 1 to 8 do begin Write ('Vec2[', i, ']: ');

Readln (Vec2[i]); end;

sc := scal (Vec1, Vec2);

a:= sc/sqrt (scal (Vec1,Vec1)*scal (Vec2,Vec2)); {Вычисляется косинус}

if a=0 then angle:=90 else angle:=arctan (sqrt (1-a*a)/a)*180/pi;

if a=-1 then angle:=180;

if angle<0 then angle:=180+angle;

writeln ('Угол между векторами: ', angle:7:3,' градусов');

END.

14. Описание: Вычислить сумму двух векторов, первый из которых вводится, а элементы второго вычисляются по формуле b[i]: =sin(i*x), где 0<=x<=3.14

program msv;

const Nm = 10; {размерность вектора}

var Vec1, Vec2, ResVec: array[1.Nm] of Real; i: integer; x: Real; N: integer;

BEGIN writeln ('Условие :');

writeln (' вычислить сумму двух векторов, первый из которых вводится, а элементы');

writeln (' второго вычисляются по формуле b[i]: =sin (i*x), где 0<=x<=3.14');

writeln;

Write ('введите размерность вектора (N<', Nm, '): ');

Readln (N);

if n <= Nm then begin Writeln ('Ввод вектора');

for i := 1 to N do begin Write ('Vec1[', i, ']: ');

Readln (Vec1[i]); end;

Write ('Введите X (от 0 до 3.14): '); Readln (x);

if (X <= 3.14) and (X >= 0) then begin for i := 1 to N do begin Vec2[i] := sin (Vec1[i]*X); ResVec[i] := Vec1[i]*Vec2[i]; {сразу же вычисляем произведние} end;

Write ('Результирующий вектор: '); {выводим на экран результат}

for i := 1 to N do Write (ResVec[i]: 6:2); end else Writeln ('Введено неверное X');

end else Writeln ('неверная размерность');

END.

15. Описание: Создается случайный массив из 5 элементов. Заменить все четные значения на 1, нечетные — на 0.

Program msv;

uses crt;

const n=5;

var a: array[1.n] of integer; i: integer;

begin clrscr; randomize;

for i:=1 to n do begin a[i]: =random (9);

write (a[i]); end;

writeln;

for i:=1 to n do begin if odd (a[i])=false then a[i]: =1 else a[i]: =0;

write (a[i]);

end;

readkey;

end.

Раздел: Процедуры и функции

1.Описание: Найти последовательности целых чисел те, которые встречаются в ней ровно два раза.

program one;

uses crt;

type mas=array[1.100]of integer; func=function (var x: mas):integer; var a: mas; j, n, m, x: integer;

function kolichestvo (var c: mas):integer; var k, i: integer;

begin k:=0;

for i:=1 to n do if c[i]>m then k:=k+1;

kolichestvo:=k; end;

procedure deist (var b: mas; operation: func);

begin writeln ('b[j]');

for j:=1 to n do readln (b[j]);

for j:=1 to n do write (b[j],' '); writeln;

x:=operation (a); end;

begin clrscr;

writeln ('vvedite celoe chislo m i razmer massiva (n)');

readln (m, n);

deist (a, kolichestvo);

writeln ('kolichestvo=', x);

readkey;

end.

2.Описание: Процедура отображения рамки в текстовом режиме

program frame;

uses Crt;

procedure Frm (l:integer; t: integer; w: integer; h: integer);

var x, y: integer; i: integer; c1, c2,c3,c4,c5,c6:char;

begin clrscr;

c1:=chr (218); c2:=chr (196);

c3:=chr (191); c4:=chr (179);

c5:=chr (192); c6:=chr (217); GoToXY (l, t);

write (c1);

for i:=1 to w-2 do write (c2);

write (c3);

y:=t+1;

x:=l+w-1;

for i:=1 to h-2 do begin GoToXY (l, y);

write (c4);

GoToXY (x, y);

write (c4);

y:=y+1; end;

GoToXY (l, y);

write (c5);

for i:=1 to w-2 do write (c2);

write (c6);

end;

begin Frm (2,2,15,10);

readln;

end.

3.Описание: Произведение нечетных элементов

Program one;

type massiv= array [1.100] of integer;

var A1, A2:massiv; i, j: integer; n1, n2:integer; function pr_nec (m:massiv; n: integer):integer;

var i, j, pr:integer;

begin pr:=1;

for i:=1 to n do if odd (m[i]) then pr:=pr*m[i];

pr_nec:=pr;

end;

begin writeln ('Vvedite PERVYI massiv:');

write ('ego razmer «n»: '); readln (n1);

for i:=1 to n1 do begin write ('A1[', i,']='); readln (A1[i]); end;

writeln ('_______________________');

writeln ('Vvedite VTOROI massiv:');

write ('ego razmer «n»: '); readln (n2);

for i:=1 to n2 do begin write ('A2[', i,']='); readln (A2[i]); end;

writeln ('_______________________');

writeln;

writeln ('Vi vveli:');

write ('A1: '); for i:=1 to n1 do write (A1[i],' '); writeln;

write ('A2: '); for i:=1 to n2 do write (A2[i],' '); writeln;

writeln;

writeln ('Proizvedenie iz A1= ', pr_nec (A1,n1));

writeln ('Proizvedenie iz A2= ', pr_nec (A2,n2));

readln;

end.

4.Описание: Нахождение тангенса tg и котангенса ctg угла, используя выражения sin (x)cos (x) и обратное ему.

Program one;

uses crt;

var y1, y2,z: real; function tg (x: real): real;

begin tg := sin (x)/cos (x);

end;

function ctg (x: real): real;

begin ctg := cos (x)/sin (x);

end;

Begin clrscr;

write ('input x: ');

readln (z);

y1:=tg (z); y2:=ctg (z);

writeln ('tg (', z:0:2,')=', y1:0:2);

writeln ('ctg (', z:0:2,')=', y2:0:2);readln;

End.

5. Описание: Определить максимальное число из четырех введенных, путем сравнения их сначала попарно, а затем результат между собой.

program one;

uses crt;

var a, b, c, d, z, x, y, x1, y1:integer; function max (x, y: integer):integer;

begin if x>y then max:=x else max:=y;

end;

begin clrscr;

writeln ('Vvedite chisla');

readln (a, b, c, d);

x1:=max (a, b); y1:=max (c, d); z:=max (x1,y1);

writeln ('max=', z);

readkey;

end.

6.Описание: Вычислить день недели по дате

program Kalendar;

uses crt; var y, d, m, c, w: integer; {m-mesiac, d-den, y-god }Procedure WriteDay (d, m, y:Integer);

constDays_of_week: rray [0.6] of String =('Voskresen`e','Ponedelnik','Vtornik', ' Sreda', ' Chetverg', ' Piatnica', ' Subbota') ;

Begin if m <3 then begin m := m + 10;

y := y — 1;end else m := m — 2;c := y div 100;y := y mod 100;w := (d+(13*m-1) div 5+y+y div 4+c div 4−2*c+777) mod 7;

WriteLn (Days_of_week[w]);end;

Procedure InputDate (var d, m, y: Integer);

Begin Write ('Vvedite datu v formate DD MM GG ');

ReadLn (d, m, y);

if (d>=1)and (d<=31) and (m>=1) and (m<=12) and (y>=1582) and (y<=4903) then Writeday (d, m, y) else begin writeln ('Nekorrektnyj vvod!');end;end;

BEGIN clrscr;

InputDate (d, m, y);

readkey;

End.

7. Описание: Нахождение процента от числа

Program one;

uses crt;

var k, n: byte; x: real; function procent (n, m: byte):real;

begin procent:=m*100/n;

end;

begin clrscr;

writeln ('Vvedite chisla');

readln (k, n);

x:=procent (k, n);

writeln ('x=', x:5:2);

readkey;

end.

8. Вывести заданное число звездочек.

program one;;

uses crt;

var n: byte; function zvezda (n:byte):real; var i: integer; s: string;

begin i:=1;

s:='';

while i<=n do begin s:=s+'*';

inc (i); end;

writeln (s); end;

begin clrscr;

writeln ('Vvedite chislo'); readln (n);

zvezda (n); readkey;

end.

9. Описание: Функция возведения числа в степень. С учетом дробных чисел и частных случаев, когда числа отрицательные или равны нулю

program one;

Uses crt;

var x, y, z:real; Function Pow (A, B: Real):Real; Var T, R: Real; L: integer;

Begin T := Abs (A);

If A < 0 Then R := (-1)*Exp (B*Ln (T)) else if A > 0 Then R := Exp (B*Ln (T)) else R:=0;

L := round (B);

If (L mod 2 = 0) Then R:=Abs®;

If (B=0) Then R:=1;

Pow:=R;

End;

BEGIN clrscr;

Writeln ('vvedite chislo:');

readln (x);

Writeln ('vvedite stepen:');

readln (y);

z:=Pow (x, y);

Writeln (z:0:2);

readkey;

END.

10. Описание: Вывести заданный символ заданное количество раз

program one;

uses crt;

var n: byte; l: string; function zvezda (n:byte;l:string):real; var i: integer; s: string;

begin i:=1;

s:='';

while i<=n do begin s:=s+l;

inc (i); end;

writeln (s); end;

begin clrscr;

writeln ('Vvedite chislo'); readln (n);

writeln ('Vvedite simvol'); readln (l);

zvezda (n, l);

readkey;

end.

11.Описание: Определить к чему ближе меньшее из двух чисел: к их среднему арифметическому или среднему геометрическому.

Program one;

vara, b: real; average: real; geometricmean: real; minstr: string;function min (a, b: real) :real;

begin min := a;

minstr := 'Pervoe';

if (b < a) then begin min := b;

minstr := 'Vtoroe';end;end;

beginwrite ('Vvedite 1-e chslo: ');readln (a);

write ('Vvedite 2-e chslo: ');readln (b);

average := (a + b) / 2;

geometricmean := sqrt (a*a + b*b);

a := min (a, b);

writeln ('Naimenshee chislo — ', minstr,' (', a:0:3,')');

write ('Blize k srednemu ');

if (abs (average — a) < abs (geometricmean — a)) thenbegin writeln ('arifmeticheskomu (', average:0:3,')');

end else begin writeln ('geometricheskomu (', geometricmean:0:3,')');end;

readln;

end.

12.Описание:Возведение в степень для целого показателя, вычисляемого за время log2(степень).

Program power_maximal;

Uses crt;

Var a, b, c: integer; function power (x, pow: integer):integer; var res: integer;

begin res := 1;

while (pow > 0) do beginif (pow and 1 = 1) then res:= res * x;

x := x * x;

pow := pow shr 1;end;

power := res; end;

Begin Clrscr;

Writeln ('input a, b: ');

Readln (a, b);

c:=power (a, b);

Writeln ('a^b = ', c);

Readkey;

End.ъ

13.Описание:Арккосинус числа. Нахождение из математических соображений

var ca, al, albeg: real; function ArcCos (arg:real):real;

var r: real;

begin if (abs (arg)>1) then begin writeln (' Unavailable argument ');

halt; end;

if abs (arg)<0.1 then r := pi/2 else r := ArcTan (sqrt (1/arg/arg-1)); { arccos }

if arg<0 then r:=pi-r;

ArcCos := r; end;

begin albeg:=pi/2+0.2;

ca := cos (albeg);

al := arccos (ca);

writeln ('ArcCos (', ca:10:7,')=', al:10:7,' AlBeg=', albeg:10:7,

' ChekSum =', al-albeg,' Must be sero');

readln;

end.

14.Описание:Есть ли в строке числовые значения

Function NumInStr (S: String): Boolean;

VAR C, I: INTEGER; N: BOOLEAN;

BEGIN; I:=0;

Repeat;

I:=I+1;

C:=Ord (S[I]);

N:=((C >= 48) AND (C <= 57));

Until (NOT N) OR (I=Length (S));

NumInStr:=N;

END;

15.Описание:Нахождение функции методом половинного деления

program half_del;

uses crt;

type ms=array[1.100] of real; { [x, y] }

var Eps, XH, DX, Y, z, X, YH, P, S, A, B:real; N, U, Er:integer; masx, masy: ms;Function F (X:real):real;

beginF:=exp (x)+x*x-2

end;

Function FuncA (Eps, s, p, YH: real):real;

begin if F (p)*F (s)<0 then begin YH:=0.5*(p+s);

while abs (F (YH)) > EPS do begin If F (p)*F (YH) <0 then S:=YH else P:=YH;

YH:=0.5*(P+S) end; end else er:=1;

FuncA:=YH; end;

procedure P1(a, b, XH:real; N: integer); var z, q: real; u: integer;

begin if x>1 then begin Z:=sqrt (X*sqrt (X-1));

a:=FuncA (Eps, s, p, YH);

for U:=1 to N do begin masx[U]: =X;

masy[U]: =sin (x)/z;

X:=X+DX; end;

{else writeln (' Error: x<1 ');} end; end;

Begin clrscr;

write ('vvedite eps: '); readln (eps);

Write ('vvedite dx: '); readln (DX);

write ('vvedite N: '); readln (N);

write ('vvedite x>1 :'); readln (x);

if x1; writeln;

Writeln ('——————————');

Writeln (' | X | Y ');

writeln ('——————————');

P1(a, b, XH, N);

for U:=1 to N do writeln ('', masx[u]: 10:7,' ', masy[u]: 10:7);readln;

end.

Раздел: Файлы

1.Описание: Решает простейшие арифметические примеры записанные в файл.

program pn12;

var f: text; s, sa, sb: string; c: char; i, a, b, o, j, code: integer; m, op: set of char;

begin m:=['1','2','3','4','5','6','7','8','9','0'];

op:=['+','-','*','/'];

assign (f,'file.txt');reset (f);

while not (eof (f)) do begin readln (f, s);

writeln (s);

for i:=2 to length (s)-1 do if (s[i] in op) and (s[i-1]in m) and (s[i+1]in m) then begin j:=1;

sa:='';

while (s[i-j] in m) and (i-j>0) do begin sa:=s[i-j]+sa;

j:=j+1 end;

j:=1;

sb:='';

while (s[i+j] in m) and (i+j<=length (s)) do begin sb:=sb+s[i+j];

j:=j+1 end;

val (sa, a, code);val (sb, b, code);

case s[i] of '+':O:=a+b;

'-':O:=a-b;

'*':O:=a*b;

'/':O:=a div b; end;

writeln (a, s[i], b,'=', O,' ')

end;end; close (f);

readln;

end.

2.Описание: Работа с текстовыми файлами предусматривает собой: создание, редактирование, добавление, удаление.

Program one;

uses Dos, Crt;

var f: text;

FileName :string[9];

st :string; ch: char; vibor: byte;

procedure Head;

begin Writeln ('esli vy otkazyvaetes ot deistviya, to naberite v nazvanii faila simvola" «');

Write ('vvedite imya faila:>');

Readln (FileName);

if FileName='~' then halt (1) else Assign (f, FileName); end;

procedure TextEdit;

begin Writeln ('Seichas vy smojetedobavlyat informaciyu v file.');

Writeln ('esli vyzahotite prekratit vvod, to naberite sleduschuyu posledovatelnost:" ~~" ');

repeat Write ('>');Readln (st);

if st<>'~~' then Writeln (f, st);

until st='~~'; end;

procedure WriteToFile;

begin Head;

ReWrite (f);

TextEdit;

Close (f);

Writeln ('Vy okonchili vvodit info v file. Najmite lubuyu knopku…');

ReadKey; end;

procedure ReadFromFile;

Head;

Reset (f);

if IOresult<>0 then begin Writeln ('file ', FExpand (filename),' ne sushestvuet.');

Writeln ((Y/N).');

ch:=ReadKey;

if (ch='Y') or (ch='y') then ReadFromFile;

end else begin Writeln ('Soderjimoe faila:');Writeln;

while not eof (f) do begin Readln (f, st);

Writeln ('>', st); end;

Close (f);

Writeln;

Writeln ('Najmite lubuyu knopku');

ReadKey; end;end;

procedure AddToFile;

begin Head;

Append (f);

if IOresult<>0 then begin

Writeln ('faila ', FExpand (filename),' ne sushestvuet.');

Writeln ('hotite vvesti drugoe imya faila?(Y/N).');

ch:=ReadKey;

if (ch='Y') or (ch='y') then AddToFile; end else begin TextEdit; Close (f);

Writeln ('Vy okon4ili vvodit info v file. Najmite lubuyu knopku…');

ReadKey; end; end;

procedure DelFile;

begin Head;

Reset (f);

if IOresult<>0 then begin Writeln ('file ', FExpand (filename),' ne sushestvuet.');

Writeln ('hotite vvesti drugoe imya file??(Y/N).');

ch:=ReadKey; if (ch='Y') or (ch='y') then DelFile; end else begin Writeln ('vy uvereny 4to hotite udalit etot file?(Y/N)');

ch:=ReadKey; if (ch='Y') or (ch='y') then Erase (f);

Writeln ('vy tolko 4to udalili file. Najmite lubuyu klavishu.');

Readkey; end; end;

procedure Menu;

begin repeat repeat ClrScr;

Writeln ('1. record file / sozdanie faila');

Writeln ('2. read file');

Writeln ('3. Dobavlenie info v file');

Writeln ('4. delet file');

Writeln ('5. Exit');

Write ('Vash vybor:>');Readln (vibor);

until (vibor>0) and (vibor<6);

Writeln;

Write ('‚л ўлЎа «Ё: ');

case vibor of 1: begin Writeln (' record file / sozdanie faila');

WriteToFile; end;

2:begin Writeln ('read file');

ReadFromFile; end;

3:begin Writeln (' Dobavlenie info v file');

AddToFile; end;

4:begin Writeln ('delet file');

DelFile; end; end;

until vibor=5; end;

begin Menu;

end.

3.Описание: Дан файл, содержащий текст и арифметические выражения вида, а*в, где * - один из знаков +, -, *, /.Выписать все арифметические выражения и вычислить их значения

program pn12;

var f: text; s, sa, sb: string; c: char; i, a, b, o, j, code: integer; m, op: set of char;

begin m:=['1','2','3','4','5','6','7','8','9','0'];

op:=['+','-','*','/'];

assign (f,'e:tptp6Arif.dat');reset (f);

while not (eof (f)) do begin readln (f, s);

writeln (s);

for i:=2 to length (s)-1 do if (s[i] in op) and (s[i-1]in m) and (s[i+1]in m) then begin j:=1;

sa:='';

while (s[i-j] in m) and (i-j>0) do begin sa:=s[i-j]+sa;

j:=j+1 end;

j:=1; sb:='';

while (s[i+j] in m) and (i+j<=length (s)) do begin sb:=sb+s[i+j];

j:=j+1 end;

val (sa, a, code);val (sb, b, code);

case s[i] of '+':O:=a+b;

'-':O:=a-b; '*':O:=a*b; '/':O:=a div b; end;

writeln (a, s[i], b,'=', O,' ')

end; end;

close (f);

end.

4.Описание: Вывести максимальное число из файла in.txt

Program one;

var t: text; i, p, code:integer; s: string; m: array[1.100] of real; max: real;

begin assign (t,'in.txt'); reset (t);

read (t, s);

i:=0;

repeat p:=pos (' ', s);

inc (i);

val (copy (s, 1, p-1), m[i], code);

delete (s, 1, p);

until p=0;

max:=m[1];

for p:=2 to i do if m[p]>max then max:=m[p];

writeln ('MAX= ', max);

close (t);

readln;

end.

5.Описание: Перекодирование файла из формата DOS в формат Windows.

Program one;

var f, g: text; i, p, n:integer; m: array [1.100] of string; s: string;

begin assign (f,'in.txt'); reset (f);

assign (g,'out.txt'); rewrite (g);

while not eof (f) do begin readln (f, s); {считываем очередную строку}

i:=0; {ставим счётчик слов на 0}

repeat inc (i); {увеличиваем счётчик текущего ПРЕДЛОЖЕНИЯ}

p:=pos (' ', s); {смотрим где находится пробел}

m[i]: =copy (s, 1, p-1); {записываем текущее слово в массив}

delete (s, 1, p); {то слово, которое заприсали в массив — удаляем}

until p=0; {****************}

n:=i+1; {конец массива}

if s[length (s)]='.' then begin m[n]: =copy (s, 1, length (s)-1); m[1]: =m[1]+'.' {то эту точку перемещаем на 1 слово}

end else m[n]: =s; {а если нет точки — то просто его записываем в массив}

writeln (g);;

for i:=n downto 1 do write (g, m[i],' '); {идём с конца массива в начало и записываем слова в обратном порядке}end;

writeln ('PEREZAPISANO…');readln;

close (f); close (g);

end.

6.Описание: Удаление следующих друг за другом нескольких пробелов из файла.

Program one;

const

FileName: String = 'Strings.txt';

VAR f: Text; S: String;

BEGIN Assign (f, FileName); {$I-}Reset (f); {$I+}

if IOResult = 0 then begin ReadLn (f, S); Close (f) end;

WriteLn ('input string: ', S);

while (POS (' ', S) > 0) do delete (S, POS (' ', S), 1);

if (length (S) > 1) and (S[1] = ' ') then Delete (S, 1, 1);

if (length (S)>1) and (S[length (S)] = ' ') then Delete (S, length (S), 1);

writeln ('output string: ', s);

readln;

END.

7.Описание: Вывести содержимое файла в обратном порядке в новый файл.

program one;

uses crt;

var fl1, fl2:text;a, b: string; i, l: longint;

begin clrscr;

Показать весь текст
Заполнить форму текущей работой