Текстовые файлы

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

Условия

Матрицы

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

2) Матрица. Процедура: в строке находит максимальный элемент и делит каждый элемент на него. Если искомый элемент 0, то оставляет строку без изменений. В основной программе провести процедуру на всех строках.

3) На главной диагонали находит максимум и удаляет строку содержащую этот максимум.

4) Умножить все элементы главной диагонали квадратной матрицы на кол-во четных элементов всей матрицы. Вывести сообщение, если матрица не изменится.

5) матрица m<30 n<20 найти в каждой строке среднее арифм и из этих этих ср.арифм создать массив

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

7) дана квадратна матрица n<=10. Разработать процедуру, в которой все элементы матрицы делятся на минимальный элемент главной диагонали. В основной программе вывести преобразованную матрицу или сообщение , что преобразовать нельзя

8) найти минимальный эл в матрице запомнить этот слобец и записать все элементы в новую матрицу без этого столбца

9) дана квадратная матрица. Найти минимальный элемент побочной диагонали и удалить столбец его содержащий.

10) квадратная матрица, надо написать процедуру перестановки наибольшего и наименьшего элементов в каждом столбце и процедуру вывода/ввод в основной программе

11) матрицу n x m чтоб н<=10 м<=12 вещественных чисел.

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

12) в строках матрицы - найти макс и поменять местами с чем-то

13) В матрице 12х15 найти минимальный элемент в матрице. Поделить всю матрицу на этот элемент , если он = 0 , не изменить матрицу. Использовать процедуру. Вывести исходную матрицу и полученную в основной программе

14) Задана квадратная матрица А(n,n) n<=10. вещественных чисел.Написать процедуру новой матрицы путем вычеркивания солбца, где расположен минимальный элемент ПОБОЧНОЙ диагонали исходной матрицы.считать элемент единственный. В основной пограмме распечатать исходную и полученную матрицу.

15) в матрице прямоугольной элементы чётных столбов умножить на сумма минмального и максимального элемента всей матрицы

16) дана матрица строк (стринг(20)) н на м, н меньше либо равно 10, м меньше либо равно 12, и надо в одномерный массив забить все элементы матрицы в которых етсь цифры

Строки

http://img88.imageshack.us/img88/9416/ds c00669nt8.jpg

1) найти кол-во максимальных элементов в массиве строк (как понимаю, надо написать процедуру/функцию, которая находит максимальное кол-во элементов в строке, а в основной программе уже найти кол-во максимальных элементов в тексте)

2) дана строка, используя процедуру в каждом слове поменять местами первую и последнюю букву, применить эту процедуру для нескольких предложений, кол-во предложений выводится по запросу!

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

4) процедура в строке удаляет лишнии пробелы и подсчитыает слова с четным количеством букв

5) разработать процедуру которая в строке меняет первое и последнее слово

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

7) Составить функцию, которая в строке произвольной длины находит число слов с минимальной длиной.

8) Написать функцию, которая определяет, сколько различных (именно различных:) букв есть в строке. Разработать эту функцию для N строк.

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

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

Массив записей

http://img529.imageshack.us/img529/9480/ dsc00668gw0.jpg

http://img210.imageshack.us/img210/9628/ dsc00672qb6.jpg

1) Массив записей (данные про точки в плоскости)

Поля:

х:риал

у:риал

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

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

3) Дан массив записей о треугольниках

A: real

B: real (стороны)

C: real

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

4) Массив записей с координатами отрезков х1 у1 х2 у2 отсортировать по длине отрезка

5) Массив записей про треугольники (известны стороны). Надо выбрать прямоугольные и записать их в отдельную запись (или массив)

Пример билета

http://img529.imageshack.us/img529/6195/ dsc00670bk9.jpg

FILL

Возможно не удалось распознать кодировку файла

UKAZWORD

Program nu_i_nu;{Создаёт в памяти матрицу N*M случайніх чисел и вічисляет их среднее значение}

Uses crt;

const

Sizeofreal=6;

N=50;

m=20;

var

i, j:integer;

Ptrstr:array[1..n] of pointer;

s:real;

type

Realpoint=^real;

Function Adres(i, j:word):realPoint;

begin

Adres:=ptr(seg(PtrStr[i]^),

ofs(PtrStr[i])+(j-1)*SizeofReal)

end;

Function ZnacheniePeremennoy(i, j:integer):real;

begin

ZnacheniePeremennoy:=Adres(i, j)^

end;

Procedure Razmeshch(i, j:integer;x:real);

begin

Adres(i, j)^:=x

end;

Begin{program}

Randomize;

Clrscr;

for i:=1 to n do

begin

GetMem(PtrStr[i], M*SizeofReal);

for j:=1 to n do Razmeshch(i, j, Random)

end;

s:=0;

for i:=1 to n do

for j:=1 to m do

s:=s+ZnacheniePeremennoy(i, j);

Writeln(s/(n*m):12:10);

readln;

end{program}.

README

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

README

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

README

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

README

Программа определяет на симметрию введённое слово

README

Программа определяет кол-во чётных и нечётных чисел

Города и температура

program temperatura;

{$APPTYPE CONSOLE}

uses

SysUtils;

type goroda=record

nazvanie:string[20];

temp:integer;

end;

tmas=array[1..10] of goroda;

massiv=array[1..20] of string;

procedure VVOD (var A:tmas;var n:integer);

var i:integer;

begin

writeln('VVedite kolichestvo gorodov');

readln(n);

for i:=1 to n do begin

writeln('Vvedite nazvanie');

readln(A[i].nazvanie);

writeln('Vvedite temperaturu');

readln(A[i].temp);

end;

end;

procedure VIBOR (A:tmas;n:integer;var B:massiv;var kol:integer);

var i,nizk:integer;

begin

nizk:=a[1].temp;

for i:=1 to n do if a[i].temp<nizk then nizk:=a[i].temp;

kol:=0;

for i:=1 to n do if a[i].temp=nizk then begin

kol:=kol+1;

B[kol]:=a[i].nazvanie;

end;

end;

procedure SORT (var B:massiv;kol:integer);

var i,j:integer;

buf:string;

begin

for j:=1 to kol-1 do

for i:=1 to kol-j do

if B[i]> B[i+1]then begin

buf:=B[i];

B[i]:=B[i+1];

B[i+1]:=buf;

end;

end;

var Gor:tmas;

Nizk:massiv;

i,n,k:integer;

begin

VVOD(Gor,n);

VIBOR(Gor,n,Nizk,k);

SORT(Nizk,k);

writeln;

Writeln ('Yporiadochennii massiv strok');

for i:=1 to k do write (Nizk[i],' ');

writeln;

readln;

end.

Другая задача с точками

запись точки,сортирует по длине от точки до следующей точки

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

type XY=record

x:integer;

x1:integer;

y:integer;

y1:integer;

l:real;

end;

Tmas=array [1..100] of XY;

procedure vvod (var A:tmas;var n:integer);

Var i:integer;

begin

writeln ('vvedite kolvo elementov');

readln (n);

writeln ('VVEDITE massiv');

for i:=1 to n do begin

writeln ('vvedite x');

readln (A[i].x);

writeln ('vvedite x1') ;

readln (A[i].x1);

writeln ('vvedite y');

readln (a[i].y);

writeln ('vvedite Y1') ;

readln (A[i].y1); end;

end;

procedure vivod (a:tmas;n:integer);

var i: integer;

begin

writeln ('l' );

for i:=1 to n do

writeln (A[i].l:2:3);

end;

procedure sort (var A:tmas;var n:integer);

var i,j:integer; b:XY;

begin

for i:=1 to n do

A[i].l:=sqrt(sqr(A[i].x-A[i].x1)+sqr(A[i ].y-A[i].y1));

for i:=1 to n do begin

for j:=1 to n-i do

if a[j].l>a[j+1].l then begin

b:=A[j];

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

A[j+1]:= B; end; end;

end;

var b:tmas;k:integer;

BEGIN

vvod (b,k);

sort (b,k);

vivod (b,k);readln;

END.

Куклы

program igruski;

{$APPTYPE CONSOLE}

uses

SysUtils;

type igruski=record

nazvanie:string[10];

zena:integer;

min:integer;

max:integer;

end;

tmas=array[1..10] of igruski;

procedure VVOD (var A:tmas; var n:integer);

var i:integer;

begin

repeat writeln('Vvedite kolichestvo igrushek (ne bolshe 10)');

readln(n);

until n<=10;

for i:=1 to n do begin

writeln('Vvedite nazvanie');

readln(A[i].nazvanie);

writeln('Vvedite zenu');

readln(A[i].zena);

writeln('Vvedite minimalnii vozrast');

readln(A[i].min);

writeln('Vvedite maximalnii vozrast');

readln(A[i].max);

end;

end;

procedure PROV (A:tmas;n:integer;sum:integer;vozr:integ er;var C:tmas;var kol:integer);

var i:integer;

begin

kol:=0;

for i:=1 to n do if (sum>A[i].zena) and (vozr>a[i].min) and (vozr<a[i].max) then begin

kol:=kol+1;

C[kol]:=A[i];

end;

end;

procedure VIVOD (A:tmas;kol:integer);

var i:integer;

begin

if kol=0 then writeln('Takix igrushek net')

else writeln ('Nazvanie Zena Min vozr Max vozr');

for i:=1 to kol do writeln (A[i].nazvanie,' ',A[i].zena,' ',A[i].min,' ',A[i].max);

end;

var B,D:tmas;

n,k,summa,vozrast:integer;

begin

VVOD(B,n);

writeln ('Vvedite vashu summu deneg');

readln(summa);

writeln('Vvedite vozrast rebenka');

readln(vozrast);

writeln('Isxodnii massiv');

VIVOD(B,n);

writeln;

writeln('To,chto podoidet po vozrastu i zene');

PROV(B,n,summa,vozrast,D,k);

VIVOD(D,k);

readln;

end.

PROV(B,n,D,k);

VIVOD(D,k);

readln;

end.

Спортсмены

program cpot;

{$APPTYPE CONSOLE}

uses

SysUtils;

type sport=record

fam:string[10];

ball:array [1..3] of integer;

end;

sportsmen=array[1..10] of sport;

procedure VVOD(var A:sportsmen; var n:integer);

var i,j:integer;

begin

writeln('Vvedite kolichestvo sportsmenov');

readln(n);

for i:=1 to n do begin

writeln('Vvedite familiu');

readln(A[i].fam);

writeln('Vvedite 3 rezultata');

for j:=1 to 3 do begin

read (a[i].ball[j]);

end;

readln;

end;

end;

procedure VIVOD(A:sportsmen;n:integer);

var i,j:integer;

begin

writeln('Familia ball 1 ball 2 ball 3');

for i:=1 to n do begin writeln(a[i].fam,' ');

for j:=1 to 3 do write(a[i].ball[j]:6);

end;

end;

function REC (A:sportsmen;n:integer;star:integer):boo lean;

var i,j,s:integer;

begin

REC:=false;

for i:=1 to n do begin

S:=0;

for j:=1 to 3 do S:=s+a[i].ball[j];

if S>star then

REC:=true;

end;

end;

var Sp:sportsmen;

n,star:integer;

begin

VVOD(Sp,n);

writeln('Vvedite starii rezultat');

readln(star);

if REC(Sp,n,star) then writeln('ruzeltat pobit')

else writeln('rezultat ne pobit');

readln;

end.

Точки

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

program toch;

{$APPTYPE CONSOLE}

uses

SysUtils;

type tochki=record

x:real;

y:real;

end;

tmas=array[1..20] of tochki; {massiv tochek}

var n,m:integer;

t:tmas;

i:integer;

procedure vvod(n1:integer;var t1:tmas);

var i:integer;

begin

for i:=1 to n1 do begin

writeln('Vvedite koordinaty X',i);readln(t1[i].x);

writeln('Vvedite koordinaty Y',i);readln(t1[i].y);

end;

end;

procedure vivod(n1:integer;t1:tmas);

begin

for i:=1 to n1 do

writeln(t1[i].x:2:0,' ',t1[i].y:2:0);

end;

function rast(x1:real;y1:real):real;

var q:real;

begin

q:=sqrt(sqr(x1)+sqr(y1));

rast:=q;

end;

procedure proverka(n1:integer;var m1:integer; var t1:tmas);

var p,j:integer;

ra:array[1..20] of real;

buf:tochki;

begin

for i:=1 to n1 do

ra[i]:=rast(t1[i].x,t1[i].y);

p:=1;

for i:=1 to n1-1 do

if ra[i]>ra[i+1] then p:=0;

if p=0 then m1:=0

else m1:=1;

if p=0 then

for i:=1 to n1-1 do begin

for j:=1 to n1-i do

if rast(t[j].x,t[j].y)>rast(t[j+1].x,t[j+1] .y) then begin

buf.x:=t[j].x;

buf.y:=t[j].y;

t[j].x:=t[j+1].x;

t[j].y:=t[j+1].y;

t[j+1].x:=buf.x;

t[j+1].y:=buf.y;

end;

end;

end;

begin {osn programma}

writeln('Vvedite kol-vo tochek');

readln(n);

vvod(n,t);

proverka(n,m,t);

if m=0 then writeln('Net. Ots. massiv: ');

vivod(n,t);

if m=1 then writeln('DA');

readln;

end.

Треугольники

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

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

type zap=record

AB:integer;

BC:integer;

AC:integer;

end;

tre=array[1..20] of zap;

procedure VVOD (var a:tre;var n:integer);

var i:integer;

begin

writeln('Vvedite kolichestvo treygolnikov');

readln(n);

for i:=1 to n do begin

writeln('Vvedite storonu AB');

readln(a[i].AB);

writeln('Vvedite storonu BC');

readln(a[i].BC);

writeln('Vvedite storonu AC');

readln(a[i].AC);

end;

end;

procedure VIBOR(a:tre;n:integer;var b:tre;var k:integer);

var i:integer;

begin

k:=0;

for i:=1 to n do if

(sqr(a[i].AC)=sqr(a[i].AB)+sqr(a[i].BC))

or (sqr(a[i].AB)=sqr(a[i].AC)+sqr(a[i].BC))

or (sqr(a[i].BC)=sqr(a[i].AB)+sqr(a[i].AC)) then begin

k:=k+1;

b[k]:=a[i];

end;

end;

procedure VIVOD(b:tre;k:integer);

var i:integer;

begin

writeln('AB BC AC');

for i:=1 to k do writeln(b[i].AB,' ',b[i].BC,' ',b[i].AC);

end;

var A,C:tre;

n,k:integer;

begin

VVOD(A,n);

VIBOR(A,n,C,k);

writeln('Priamoygolnie treygolniki');

VIVOD(C,k);

readln;

end.

Задача 1 (найти сумму мин и макс на побочной диаг и поделить всю матрицу на эту сумму)

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

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..15,1..15] of double;

procedure VVOD (var a:mas;var n:integer);

var i,j:integer;

begin

writeln('VVedite kolichestvo strok/stolbzov');

readln(n);

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (a:mas;n:integer;var sum:double);

var i,j:integer;

min,max:double;

begin

min:=a[1,n];

for i:=1 to n do if a[i,n+1-i]<min then min:=a[i,n+1-i];

max:=a[1,n];

for i:=1 to n do if a[i,n+1-i]>max then max:=a[i,n+1-i];

sum:=min+max;

writeln('Min element pobochnoi diag ',min:0:0);

writeln('Max element pobochnoi diag ',max:0:0);

writeln('Cymma ',sum:0:0);

end;

procedure DELENIE (a:mas;n:integer;sum:double;var c:mas);

var i,j:integer;

begin

for i:=1 to n do begin

for j:=1 to n do c[i,j]:=a[i,j]/sum;

end;

end;

procedure VIVOD (c:mas;n:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var M,K:mas;

n:integer;

summa:double;

begin

VVOD(M,n);

POISK(M,n,summa);

DELENIE(M,n,summa,K);

VIVOD(K,n);

readln;

end.

Задача 10 (перестановка наибольшего и наименьшего элемента в каждом столбце)

10) квадратная матрица, надо написать процедуру перестановки наибольшего и наименьшего элементов в каждом столбце и процедуру вывода/ввод в основной программе

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..15,1..15] of integer;

procedure VVOD (var a:mas;var n:integer);

var i,j:integer;

begin

writeln('VVedite kolichestvo strok/stolbzov');

readln(n);

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (var a:mas;n:integer);

var i,j,min,max,imin,imax,buf:integer;

begin

for j:=1 to n do begin

min:=a[1,j];

imin:=1;

for i:=1 to n do if a[i,j]<min then begin

min:=a[i,j];

imin:=i;

end;

max:=a[1,j];

imax:=1;

for i:=1 to n do if a[i,j]>max then begin

max:=a[i,j];

imax:=i;

end;

a[imax,j]:=min;

a[imin,j]:=max;

end;

end;

procedure VIVOD (a:mas;n:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var A:mas;

n:integer;

begin

VVOD(A,n);

POISK(A,n);

writeln('Poluchennaya matriza');

VIVOD(A,n);

readln;

end.

Задача 11 (умножение каждого столбца на макс элемент этого столбца)

11) матрицу n x m чтоб н<=10 м<=12 вещественных чисел.

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

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..10,1..12] of double;

procedure VVOD (var a:mas;var n,m:integer);

var i,j:integer;

begin

repeat

writeln('VVedite kolichestvo strok');

readln(n);

until n<=10;

repeat

writeln('VVedite kolichestvo stolbzov');

readln(m);

until n<=12;

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (var a:mas;n,m:integer);

var i,j:integer;

max:double;

begin

for j:=1 to m do begin

max:=a[1,j];

for i:=1 to n do if a[i,j]>max then max:=a[i,j];

for i:=1 to n do a[i,j]:=a[i,j]*max;

end;

end;

procedure VIVOD (a:mas;n,m:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var A:mas;

n,m:integer;

begin

VVOD(A,n,m);

POISK(A,n,m);

writeln('Poluchennaya matriza');

VIVOD(A,n,m);

readln;

end.

Задача 12 (поменять макс элемент каждый строки с 1ым элементом (например))

12) в строках матрицы - найти макс и поменять местами с чем-то

(я меняла для разнообразия с первым элементом)

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..15,1..20] of integer;

procedure VVOD (var a:mas;var n,m:integer);

var i,j:integer;

begin

writeln('VVedite kolichestvo strok');

readln(n);

writeln('VVedite kolichestvo stolbzov');

readln(m);

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (var a:mas;n,m:integer);

var i,j,max,kol,jmax:integer;

begin

for i:=1 to n do begin

max:=a[i,1];

jmax:=1;

for j:=1 to m do if a[i,j]>max then begin

max:=a[i,j];

jmax:=j;

end;

a[i,jmax]:=a[i,1];

a[i,1]:=max;

end;

end;

procedure VIVOD (a:mas;n,m:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var A:mas;

n,m:integer;

begin

VVOD(A,n,m);

POISK(A,n,m);

writeln('Poluchennaya matriza');

VIVOD(A,n,m);

readln;

end.

Задача 13 (найти мин элемент и поделить на него всю матрицу)

13) В матрице 12х15 найти минимальный элемент в матрице. Поделить всю матрицу на этот элемент , если он = 0 , не изменить матрицу. Использовать процедуру. Вывести исходную матрицу и полученную в основной программе

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..12,1..15] of double;

procedure VVOD (var a:mas;var n,m:integer);

var i,j:integer;

begin

repeat

writeln('VVedite kolichestvo strok');

readln(n);

until n<12;

repeat

writeln('VVedite kolichestvo stolbzov');

readln(m);

until m<15;

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (a:mas;n,m:integer;var b:mas);

var i,j:integer;

min:double;

begin

min:=a[1,1];

for i:=1 to n do begin

for j:=1 to m do if a[i,j]<min then min:=a[i,j];

end;

for i:=1 to n do begin

for j:=1 to m do begin

b[i,j]:=a[i,j];

b[i,j]:=b[i,j]/min;

end;

end;

end;

procedure VIVOD (a:mas;n,m:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var A,B:mas;

n,m:integer;

begin

VVOD(A,n,m);

POISK(A,n,m,B);

writeln('Isxodnaya matriza');

VIVOD(A,n,m);

writeln('Poluchennaya matriza');

VIVOD(B,n,m);

readln;

end.

Задача 14 (убрать столбец с минималным элементом на побочной диагонали)

14) Задана квадратная матрица А(n,n) n<=10. вещественных чисел.Написать процедуру новой матрицы путем вычеркивания солбца, где расположен минимальный элемент ПОБОЧНОЙ диагонали исходной матрицы.считать элемент единственный. В основной пограмме распечатать исходную и полученную матрицу.

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..10,1..10] of double;

procedure VVOD (var a:mas;var n,m:integer);

var i,j:integer;

begin

repeat

repeat

writeln('VVedite kolichestvo strok');

readln(n);

until n<=10;

repeat

writeln('VVedite kolichestvo stolbzov');

readln(m);

until m<=10;

until m=n;

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (a:mas;n:integer;var b:mas;var m:integer);

var i,j,jmin:integer;

min:double;

begin

min:=a[1,m];

jmin:=m;

for i:=1 to n do if a[i,m+1-i]<min then begin

min:=a[i,m+1-i];

jmin:=m+1-i;

end;

for i:=1 to n do

for j:=1 to m do b[i,j]:=a[i,j];

for i:=1 to n do

for j:=jmin to m-1 do begin b[i,j]:=b[i,j+1];

end;

m:=m-1;

end;

procedure VIVOD (a:mas;n,m:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var A,B:mas;

n,m:integer;

begin

VVOD(A,n,m);

POISK(A,n,B,m);

writeln('Isxodnaia matriza');

VIVOD(A,n,n);

writeln('Poluchennaya matriza');

VIVOD(B,n,m);

readln;

end.

Задача 15 (умножить четные столбцы на сумму мин и макс матрицы)

15) в матрице прямоугольной элементы чётных столбов умножить на сумма минмального и максимального элемента всей матрицы

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..20,1..20] of integer;

procedure VVOD (var A:mas; var n,m:integer);

var i,j:integer;

begin

writeln('Vvedite kolichestvo strok');

readln(n);

writeln('Vvedite kolichestvo stolbzov');

readln(m);

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (var A:mas;n,m:integer);

var i,j,min,max,sum:integer;

begin

min:=a[1,1];

for i:=1 to n do

for j:=1 to m do if a[i,j]<min then min:=a[i,j];

max:=a[1,1];

for i:=1 to n do

for j:=1 to m do if a[i,j]>max then max:=a[i,j];

sum:=max+min;

for i:=1 to n do begin

for j:=1 to m do if (j mod 2) = 0 then a[i,j]:=a[i,j]*sum;

end;

end;

procedure VIVOD (A:mas;n,m:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var n,m:integer;

A:mas;

begin

VVOD(A,n,m);

POISK(A,n,m);

VIVOD(A,n,m);

readln;

end.

Задача 2 (каждый элемент строки делится на макс элемент этой строки)

2) Матрица. Процедура: в строке находит максимальный элемент и делит каждый элемент на него. Если искомый элемент 0, то оставляет строку без изменений. В основной программе провести процедуру на всех строках.

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..15,1..15] of double;

var M,K:mas;

n,i:integer;

procedure VVOD (var a:mas;var n:integer);

var i,j:integer;

begin

writeln('VVedite kolichestvo strok/stolbzov');

readln(n);

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK_Del (a:mas;n:integer;var c:mas);

var j:integer;

max,del:double;

begin

max:=a[i,1];

for j:=1 to n do if a[i,j]>max then max:=a[i,j];

for j:=1 to n do begin

del:=a[i,j]/max;

C[i,j]:=del;

end;

end;

procedure VIVOD (c:mas;n:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

begin

VVOD(M,n);

for i:=1 to n do

POISK_Del(M,n,K);

writeln('Poluchennaya matriza');

VIVOD(K,n);

readln;

end.

Задача 4 (умножить числа главной диагонали на кол-во четных элементов всей матрицы)

4) Умножить все элементы главной диагонали квадратной матрицы на кол-во четных элементов всей матрицы. Вывести сообщение, если матрица не изменится.

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..15,1..15] of integer;

procedure VVOD (var a:mas;var n:integer);

var i,j:integer;

begin

writeln('VVedite kolichestvo strok/stolbzov');

readln(n);

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (var a:mas;n:integer);

var i,j,max,kol:integer;

begin

kol:=0;

for i:=1 to n do

for j:=1 to n do

if (a[i,j] mod 2) = 0 then kol:=kol+1;

if kol=1 then writeln ('matriza ne izmenitsia')

else begin

for i:=1 to n do a[i,i]:=a[i,i]*kol;

end;

end;

procedure VIVOD (a:mas;n:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var M:mas;

n:integer;

begin

VVOD(M,n);

POISK(M,n);

writeln('Poluchennaya matriza');

VIVOD(M,n);

readln;

end.

Задача 5 (найти в каждой строке ср арифметическое и из них массив)

5) матрица m<30 n<20 найти в каждой строке среднее арифм и из этих этих ср.арифм создать массив

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..30,1..20] of integer;

massiv=array[1..30] of double;

procedure VVOD (var a:mas;var n,m:integer);

var i,j:integer;

begin

writeln('VVedite kolichestvo strok');

readln(n);

writeln('VVedite kolichestvo stolbzov');

readln(m);

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (a:mas;n,m:integer;var b:massiv);

var i,j,sum:integer;

ar:double;

begin

for i:=1 to n do begin

sum:=0;

for j:=1 to m do sum:=sum+a[i,j];

ar:=sum/m;

b[i]:=ar;

end;

end;

procedure VIVOD (b:massiv;n:integer);

var i:integer;

begin

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

writeln;

end;

var A:mas;

b:massiv;

n,m:integer;

begin

VVOD(A,n,m);

POISK(A,n,m,b);

writeln('Poluchennaya matriza');

VIVOD(b,n);

readln;

end.

Задача 6 (умножить числа главной диагонали на кол-во нечетных элементов)

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

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..15,1..15] of integer;

procedure VVOD (var a:mas;var n:integer);

var i,j:integer;

begin

writeln('VVedite kolichestvo strok/stolbzov');

readln(n);

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (var a:mas;n:integer);

var i,j,max,kol:integer;

begin

kol:=0;

for i:=1 to n do

for j:=1 to n do

if (a[i,j] mod 2) = 1 then kol:=kol+1;

if kol=1 then writeln ('matriza ne izmenitsia')

else begin

for i:=1 to n do a[i,i]:=a[i,i]*kol;

end;

end;

procedure VIVOD (a:mas;n:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var M:mas;

n:integer;

begin

VVOD(M,n);

POISK(M,n);

writeln('Poluchennaya matriza');

VIVOD(M,n);

readln;

end.

Задача 7 (все элементы матрицы делятся на минимальный главной диагонали)

7) дана квадратна матрица n<=10. Разработать процедуру, в которой все элементы матрицы делятся на минимальный элемент главной диагонали. В основной программе вывести преобразованную матрицу или сообщение , что преобразовать нельзя

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..10,1..10] of double;

procedure VVOD (var a:mas;var n:integer);

var i,j:integer;

begin

repeat

writeln('VVedite kolichestvo strok/stolbzov');

readln(n);

until n<=10;

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (var a:mas;n:integer);

var i,j:integer;

min:double;

begin

min:=a[1,1];

for i:=1 to n do if a[i,i]<min then min:=a[i,i];

if min=0 then writeln ('Preobrazovat nelzia')

else begin

for i:=1 to n do begin

for j:=1 to n do a[i,j]:=a[i,j]/min

end;

end;

end;

procedure VIVOD (a:mas;n:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var M:mas;

n:integer;

begin

VVOD(M,n);

POISK(M,n);

writeln('Poluchennaya matriza');

VIVOD(M,n);

readln;

end.

Задача 8 (создать новую матрицу без столбца с мин элементом)

8) найти минимальный эл в матрице запомнить этот слобец и записать все элементы в новую матрицу без этого столбца

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..15,1..10] of integer;

procedure VVOD (var a:mas;var n,m:integer);

var i,j:integer;

begin

writeln('VVedite kolichestvo strok');

readln(n);

writeln('VVedite kolichestvo stolbzov');

readln(m);

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (a:mas;n:integer;var m:integer;var b:mas);

var i,j,min,jmin:integer;

begin

min:=a[1,1];

jmin:=1;

for i:=1 to n do begin

for j:=1 to m do if a[i,j]<min then begin

min:=a[i,j];

jmin:=j;

end;

end;

writeln('Min el ',min,' stoit v stolbze ',jmin);

for i:=1 to n do

for j:=1 to m do b[i,j]:=a[i,j];

for i:=1 to n do begin

for j:=jmin to m-1 do begin

b[i,j]:=b[i,j+1];

end;

end;

m:=m-1;

end;

procedure VIVOD (b:mas;n,m:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var A,B:mas;

n,m:integer;

begin

VVOD(A,n,m);

POISK(A,n,m,B);

writeln('Poluchennaya matriza');

VIVOD(B,n,m);

readln;

end.

Задача 9 (удалить столбец, содержащий мин элемент побочной диагонали)

9) дана квадратная матрица. Найти минимальный элемент побочной диагонали и удалить столбец его содержащий.

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..15,1..15] of integer;

procedure VVOD (var a:mas;var n,m:integer);

var i,j:integer;

begin

repeat

writeln('VVedite kolichestvo strok');

readln(n);

writeln('Vvedite kolichestvo stolbzov');

readln(m);

until n=m;

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure POISK (var a:mas;n:integer;var m:integer);

var i,j,min,jmin:integer;

begin

min:=a[1,n];

jmin:=n;

for i:=1 to n do begin

if a[i,n+1-i]<min then begin

min:=a[i,n+1-i];

jmin:=n+1-i;

end;

end;

writeln('min el ',min,' v ',jmin);

for i:=1 to n do begin

for j:=jmin to m-1 do begin

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

end;

end;

m:=m-1;

end;

procedure VIVOD (a:mas;n,m:integer);

var i,j:integer;

begin

for i:=1 to n do begin

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

writeln;

end;

end;

var A:mas;

n,m:integer;

begin

VVOD(A,n,m);

POISK(A,n,m);

writeln('Poluchennaya matriza');

VIVOD(A,n,m);

readln;

end.

задача 3 (найти макс элемент на главной диагонале, удаляет строку с макс)

3) На главной диагонали находит максимум и удаляет строку содержащую этот максимум.

program matrizi;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..15,1..15] of integer;

procedure VVOD (var a:mas;var n,m:integer);

var i,j:integer;

begin

repeat

writeln('VVedite kolichestvo strok');

readln(n);

writeln('Vvedite kolichestvo stolbzov');

readln(m);

until m=n;

writeln('Vvedite matrizu');

for i:=1 to n do begin

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

readln;

end;

end;

procedure Del (var a:mas;n:integer;m:integer;var s:integer);

var i,j,imax,max:integer;

begin

max:=a[1,1];

imax:=1;

for i:=1 to n do

for j:=i to i do

if a[i,j]>max then begin

max:=a[i,j];

imax:=i;

end;

for j:=1 to m do

for i:=imax to n do begin

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

s:=n-1;

end;

end;

procedure VIVOD (a:mas;s,m:integer);

var i,j:integer;

begin

for i:=1 to s do begin

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

writeln;

end;

end;

var A:mas;

m,n,s:integer;

begin

VVOD(A,n,m);

DEL(A,n,m,s);

writeln('Poluchennaya matriza');

VIVOD(A,s,m);

readln;

end.

Внимание

Задачи на строки надо решать по примеру задачи 1! (осн программа)

Задача 1 (найти в каждой строке кол-во самых длинных слов)

1) найти кол-во максимальных элементов в массиве строк (как понимаю, надо написать процедуру/функцию, которая находит максимальное кол-во элементов в строке, а в основной программе уже найти кол-во максимальных элементов в тексте)

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..20] of string;

procedure SLOVO (var s:string;var b:mas;var kol:integer);

var slovo,max:string;

i,n,p:integer;

begin

{удаление пробелов - необязательно думаю}

p:=pos(' ',s);

while p>0 do

begin

delete(s,p,1);

p:=pos(' ',s);

end;

{сама программа}

s:=s+' ';

slovo:='';

n:=0;

for i:=1 to length(s) do if s[i]<>' ' then slovo:=slovo+s[i]

else begin

n:=n+1;

b[n]:=slovo;

slovo:=''

end;

max:=b[1];

for i:=1 to n do

if length(b[i])>length(max) then max:=b[i];

kol:=0;

for i:=1 to n do

if length(b[i])=length(max) then

kol:=kol+1;

end;

var s:string;

b,b1:mas;

n,i:integer;kol:array[1..20] of integer;

begin

writeln('Vvedite kolichestvo strok');

readln(n);

for i:=1 to n do begin

writeln('Vvedite stroku');

readln(b1[i]);

end;

for i:=1 to n do SLOVO(b1[i],b,kol[i]);

writeln('Izmenennie stroki');

for i:=1 to n do

writeln('Kolichestvo max dlin slov ',kol[i],' v stroke ',i);

readln;

end.

Задача 4 (посчитать количество четных слов в каждой строке)

4) процедура в строке удаляет лишнии пробелы и подсчитыает слова с четным количеством букв

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

procedure Izmen (var s:string;var chet:integer);

var i,p,kol:integer;

slovo:string;

begin

writeln('Vvedite stroku');

readln(s);

{удаление пробелов}

p:=pos(' ',s);

while p>0 do begin

delete(s,p,1);

p:=pos(' ',s);

end;

if s[1]=' ' then delete(s,1,1);

if s[length(s)]=' ' then delete (s,length(s),1);

s:=s+' ';

slovo:='';

chet:=0;

for i:=1 to length(s) do

if s[i]<>' ' then slovo:=slovo+s[i]

else begin if length(slovo) mod 2=0 then begin

chet:=chet+1;

slovo:='';

end

else slovo:='';

end;

writeln('kol-vo chet slov ',chet);

end;

var n,k,j:integer;

s:string;

begin

writeln('Vvedite kolichestvo strok');

readln(n);

for j:=1 to n do begin

Izmen(s,k);

end;

readln;

end.

Задача 5 (поменять местами первое и последнее слово)

5) разработать процедуру которая в строке меняет первое и последнее слово

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..20] of string;

procedure ZAMENA (var s:string;n:integer;var b:mas;var k:integer);

var i,p,j:integer;

slovo,buf:string;

begin

writeln('vvedite stroku');

readln(s);

{удаление пробелов}

p:=pos(' ',s);

while p>0 do begin

delete(s,p,1);

p:=pos(' ',s);

end;

if s[1]=' ' then delete(s,1,1);

if s[length(s)]=' ' then delete (s,length(s),1);

s:=s+' ';

slovo:='';

k:=0;

for i:=1 to length(s) do if s[i]<>' ' then slovo:=slovo+s[i]

else begin

k:=k+1;

b[k]:=slovo;

slovo:='';

end;

for i:=1 to k do begin

buf:=b[1];

b[1]:=b[k];

b[k]:=buf;

end;

end;

var n,i,kol,j:integer;

st:string;

B:mas;

begin

writeln('Vvedite kolichestvo strok');

readln(n);

for i:=1 to n do begin

ZAMENA(st,n,B,kol);

for j:=1 to kol do write (B[j],' ');

writeln;

end;

readln;

end.

Задача 6 (количество букв в строке)

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

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

procedure CHISLO (var s:string;n:integer;var k:integer);

var i,p,j:integer;

slovo,buf:string;

begin

writeln('vvedite stroku');

readln(s);

{удаление пробелов}

p:=pos(' ',s);

while p>0 do begin

delete(s,p,1);

p:=pos(' ',s);

end;

if s[1]=' ' then delete(s,1,1);

if s[length(s)]=' ' then delete (s,length(s),1);

s:=s+' ';

slovo:='';

k:=0;

for i:=1 to length(s) do if s[i]<>' ' then k:=k+1;

end;

var n,i,kol,j:integer;

st:string;

begin

writeln('Vvedite kolichestvo strok');

readln(n);

for i:=1 to n do begin

CHISLO(st,n,kol);

writeln('Kolicestvo bukv v ',i,' stroke ravno ',kol);

end;

readln;

end.

___________

6) используя процедуру, посчитать сколько букв в строке произвольной длины (если учитывать, что заданы разные символы)

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mn=set of char;

function Kol(var s:string;n:integer):integer;

var i,p,k:integer;

M:mn;

begin

writeln('Vvedite stroku');

readln(s);

{поиск букв}

M:=['A'..'Z'];

k:=0;

for i:=1 to length(s) do if upcase(s[i]) in M then k:=k+1;

Kol:=k;

end;

var n,i,kolich:integer;

st:string;

begin

writeln('Vvedite kol-vo strok');

readln(n);

for i:=1 to n do begin

kolich:=kol(st,n);

writeln('Kolichestvo bukv v stroke ravno ',kolich);

end;

readln;

end.

Задача 7 (функция-найти количество наименьших слов)

7) Составить функцию, которая в строке произвольной длины находит число слов с минимальной длиной.

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..20] of string;

function CHISLO (var s:string;var b:mas;var kol:integer):integer;

var slovo,min:string;

i,n,p:integer;

begin

writeln('Vvedite stroku');

readln(s);

{удаление пробелов}

p:=pos(' ',s);

while p>0 do

begin

delete(s,p,1);

p:=pos(' ',s);

end;

if s[1]=' ' then delete(s,1,1);

if s[length(s)]=' ' then delete (s,length(s),1);

{сама программа}

s:=s+' ';

slovo:='';

n:=0;

for i:=1 to length(s) do if s[i]<>' ' then slovo:=slovo+s[i]

else begin

n:=n+1;

b[n]:=slovo;

slovo:=''

end;

min:=b[1];

for i:=1 to n do

if length(b[i])<length(min) then min:=b[i];

kol:=0;

for i:=1 to n do

if length(b[i])=length(min) then

kol:=kol+1;

CHISLO:=kol;

end;

var s:string;

b:mas;

n,i,kol:integer;

begin

writeln('Vvedite kolichestvo strok');

readln(n);

for i:=1 to n do begin

CHISLO(s,b,kol);

writeln('Kolichestvo min dlin slov ',kol,' v stroke ',i);

end;

readln;

end.

Задача 8 (функция - количество различных букв в строке)

8) Написать функцию, которая определяет, сколько различных (именно различных:) букв есть в строке. Разработать эту функцию для N строк.

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mn=set of char;

function CHISLO (var s:string;n:integer):integer;

var i,kol:integer;

M:mn;

begin

writeln('Vvedite stroku');

readln(s);

M:=['A'..'Z'];

kol:=0;

for i:=1 to length(s) do if upcase(s[i]) in M then begin

kol:=kol+1;

M:=M-[upcase(s[i])];

end;

CHISLO:=kol;

end;

var n,i,kol:integer;

st:string;

begin

writeln('Vvedite kolichestvo strok');

readln(n);

for i:=1 to n do begin

kol:=CHISLO(st,n);

writeln('kol-vo razlichnix bukz v stroke ',kol);

end;

readln;

end.

Задача 9 (функция - количество мин слов)

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

program Project2;

{$APPTYPE CONSOLE}

uses

SysUtils;

type mas=array[1..20] of string;

function Min_sl (var s:string;n:integer):integer;

var i,kol:integer;

slovo,min:string;

b:mas;

begin

writeln('Vvedite stroku');

readln(s);

s:=s+' ';

slovo:='';

n:=0;

for i:=1 to length(s) do if s[i]<>' ' then slovo:=slovo+s[i]

else begin

n:=n+1;

b[n]:=slovo;

slovo:=''

end;

min:=b[1];

for i:=1 to n do

if length(b[i])<length(min) then min:=b[i];

kol:=0;

for i:=1 to n do

if length(b[i])=length(min) then

kol:=kol+1;

Min_sl:=kol;

end;

var n,k,i:integer;

st:string;

begin

writeln('Vvedite kol-vo strok');

readln(n);

for i:=1 to n do begin

k:=Min_sl(st,n);

writeln('Kolichestvo min slov ravno ',k);

end;

readln;

end.

Задача фотка (изменить строку по правилу)

Задача с фотки (изменить строку по правилу: пробел должен быть после . , ; а не перед ними)

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

procedure OSHIBKI(var s:string);

var p,k,i:integer;

begin

p:=pos(' ',s);

while p>0 do begin

delete(s,p,1);

p:=pos(' ',s);

end;

if s[1]=' ' then delete(s,1,1);

if s[length(s)]=' ' then delete(s,length(s),1);

k:=pos(' ,',s);

while k>0 do begin

delete(s,k,1);

k:=pos(' ,',s);

end;

k:=pos(' ;',s);

while k>0 do begin

delete(s,k,1);

k:=pos(' ;',s);

end;

k:=pos(' .',s);

while k>0 do begin

delete(s,k,1);

k:=pos(' .',s);

end;

for i:=length(s) downto 1 do if s[i]=',' then insert(' ',s,i+1);

for i:=length(s) downto 1 do if s[i]='.' then insert(' ',s,i+1);

for i:=length(s) downto 1 do if s[i]=';' then insert(' ',s,i+1);

p:=pos(' ',s);

while p>0 do begin

delete(s,p,1);

p:=pos(' ',s);

end;

end;

var n,i:integer;

st:array[1..10] of string;

begin

writeln('Vvedite kolichestvo strok');

readln(n);

for i:=1 to n do begin

writeln('Vvedite stroku');

readln(st[i]);

end;

for i:=1 to n do OSHIBKI(st[i]);

writeln('Izmenennie stroki');

for i:=1 to n do writeln(st[i]);

readln;

end.

кол-во слов заданной длины

program Pr1;

{$APPTYPE CONSOLE}

uses

SysUtils;

function kol_sl(x:string; n:integer):integer;

var i,k,kol:integer;

slovo:array[1..30]of string;

begin

kol:=1;k:=0;

for i:=1 to length(x) do

{slovo[kol]:='';}

if x[i]<>' ' then

slovo[kol]:=slovo[kol]+x[i]

else kol:=kol+1;

for i:=1 to kol do

if length (slovo[i])=n then

k:=k+1;

kol_sl:=k;

end;

var a:array[1..30]of string;

s,n,i,k:integer;

begin

{основная программа}

writeln('vvedite kol. strok');

readln(n);

writeln('vvedite stroki');

for i:=1 to n do

readln(a[i]);

writeln('vvedite zadannuy dlinu slov');

readln(k);

s:=0;

for i:=1 to n do

s:=s+kol_sl(a[i],k);

if s=0 then writeln('takix slov net')

else writeln('kol. slov zadannoy dliny =',s );

readln;

end.

README

---------------------------------------- ---------------------

Advanced Grapher 2.11

Copyright (c) 1998-2005 Alentum Software, Inc.

---------------------------------------- ---------------------

Advanced Grapher is a powerful but easy-to-use graphing,

curve fitting and calculating software. It will help you to

plot different graphs and analyze them.

You can graph Cartesian (Y(x) and X(y)), polar and parametric

functions, graphs of tables, equations (implicit functions),

inequalities and systems of inequalities and slope fields.

The calculus features are regression analysis, obtaining

zeroes and extrema of functions, intersections, derivatives,

equations of tangents and normals, numerical integration.

The program supports English, German, Italian, French,

Spanish, Portuguese, Dutch and Russian interfaces. Some

additional language files are available on the Advanced

Grapher Home Page.

REQUIREMENTS

------------

This program requires Windows 95/98/Me/NT/2000/XP/2003 or

higher.

INSTALLATION

------------

Run the setup.exe file and follow the instructions.

PURCHASE

--------

You are invited to try out this trial version for 30 days. If

you wish to use Advanced Grapher after the trial period you

must purchase the program and get your license key.

The price of the program is $29.95.

Visit http://www.alentum.com/purchase.htm to order the

program.

CONTACTING THE AUTHOR

---------------------

If you have any problems, questions, suggestions please email

to agrapher@alentum.com

THE LATEST VERSION

------------------

You may download the latest version of Advanced Grapher at

http://www.alentum.com/agrapher/

WHAT'S NEW

----------

Version 2.11

------------

* Several bugs fixed

Version 2.1

-----------

* Interface improvements

* Supports up to 100 graphs in one document

* Several bugs fixed

Version 2.08

------------

* Minor bugs fixed

Version 2.07

------------

* Minor bugs fixed

Version 2.06

------------

* Minor bugs fixed

Version 2.05

------------

* Corrected work with default graph properties

* Improved flat style interface

Version 2.03

------------

* Improved table import

* Supports up to 5000 points per table

Version 2.02

------------

* Supports Windows XP visual styles

Version 2.01

------------

* Several bugs fixed

Version 2.0

-----------

* New MS Office 2000 like interface: customizable toolbars

and menus, dockable windows, etc.

* Improved Graph List window

* New calculator

* Document Properties window

* The program stores all options in the registry (instead of

ini files)

* New format of the files (size decreased in 2-20 times

depending on the file)

* Minor interface improvements

Version 1.63

------------

* Minor bugs fixed.

Version 1.62

------------

* Minor bugs fixed

Version 1.61

------------

* Several bugs fixed

Version 1.6

-----------

* Supports custom text labels

* Minor changes of the interface

Version 1.53

------------

* Saving as EMF

Version 1.52

------------

* Improved inteface

Version 1.51

------------

* New help system

* New installation system

* Several bugs fixed

Version 1.5

-----------

* Up to 1000 points per table

* The package includes a manual

Version 1.3

-----------

* Supports legends

* New property of graphs: description

Version 1.21

------------

* Supports different line styles of graphs

* Changed limitations of the unregistered version

Version 1.2a

------------

* Supports French, Spanish and Croatian interfaces

* Several changes of the installation

Version 1.2

-----------

* Graphing systems of inequalities

* New operations and functions

* Saving tables as text files

* Copying and pasting tables

* Smoothing table graphs

* Obtaining intersections

* Equal Scale of Marks mode

* Boxed style of the axes

* Drawing titles of graphs

* Some other small improvements

Version 1.12

------------

* Enhanced work with tables

* Multilingual interface

Version 1.11

------------

* Copying as EMF (useful if you use Microsoft Word or some

other new programs)

* Loading tables from text files

111111111111111

около 320 км от москвы...есть газ

План.

Введение.

Загрязнение атмосферного воздуха города.

Воздействие стационарных источников.

Загрязнение от транспортных источников.

Сброс загрязняющих веществ.

Заключение.

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

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

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

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

Особенностью физико-географических условий Нижнего Новгорода является его расположение в центральной части области у слияния двух крупнейших рек

Восточно-европейской равнины - Волги и Оки. Абсолютные отметки нагорной части колеблются от 100 до 200 м, Заречной части - 70-80 м над уровнем моря. Орография города создает особенности климатических характеристик, в частности, более частую повторяемость штилей в Заречной части (17%) по сравнению с Нагорной (12%), различие в режимах температуры, влажности, облачности и осадков.

Территория достаточно обеспечена водными ресурсами. Наличие двух крупных водотоков - Волги и Оки, двух водохранилищ - Горьковского и Чебоксарского обусловливают высокий гидрологический потенциал региона. Множество малых рек и озер также позволяют полностью удовлетворить потребности в воде.

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

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

Современная экологическая ситуация в районе Нижнего Новгорода в целом типична и сходна с экологическими условиями большинства промышленных центров.

Сложность экологических параметров окружающей среды района Нижнего

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

С запада на Нижний Новгород поступают загрязнения как воздушным путем, так и водными потоками от города и промышленных предприятий Дзержинска.

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

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

С севера в окружающую среду Нижнего Новгорода поступают загрязнения от города и промышленных предприятий г. Балахны, с юга на город воздействует нефтеперерабатывающий и нефтехимический комбинаты, ТЭЦ, другие предприятия г. Кстово.

Все это, несмотря на высокий природно-экологический потенциал территории

Нижнего Новгорода, оказывают все возрастающее негативное воздействие на окружающую среду города.

Площадь города в современных границах - 36 925 га. Численность населения

Нижнего Новгорода на 1 января 1995 г. составляла 1,4 млн. человек.

2. Загрязнение атмосферного воздуха города

2.1. Воздействие стационарных источников

В минувшем 1995 г. по данным ЦНС в Нижнем Новгороде не регистрировались случаи высокого уровня загрязнения атмосферного воздуха, однако, незначительные превышения М.Р. (максимально-разовых) концентраций отмечались регулярно в течение всего года. В районах транспортных магистралей ул. Веденяпина, Куйбышева, Рябцева, Родионова отмечались повышенные концентрации - до 4,5 ПДК, среднемесячные концентрации бензапирена в районах постов на ул. Куйбышева и Веденяпина достигали

1,2...1,3 ПДК.

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

- до 2 ПДК на ул. Коминтерна, ул. Веденяпина; хром - до 2,5 ПДК на ул.

Куйбышева, до 4,5 ПДК - в районе завода Керамик; фенол - до 3,5 ПДК на ул.

Веденяпина.

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

Год 1995 ознаменовался дальнейшим, хотя и не таким значительным как в

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

Снижение выбросов сернистого ангидрида произошло благодаря энергетикам, сумевшим снизить долю мазута в топливном балансе ТЭЦ. Следует сказать, что объекты энергетики - основные вкладчики в загрязнение атмосферы в нашем городе. На их долю приходится более 60% промышленных выбросов. Поэтому качество используемого топлива заметно влияет на состояние воздуха. Так, в декабре - январе в связи с установившейся низкой температурой наружного воздуха многие промышленные предприятия вынуждены были перевести свои производственные и коммунальные котельные на сжигание резервного топлива - мазута. В результате концентрации диоксида серы заметно возросли практически во всех районах города.

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

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

Машиностроительном заводе, ЗЕФСе, "РУМО", проверены отдельные производства

ГАЗа,

На многих предприятиях выявлены факты нарушения природоохранного законодательства: превышение установленных нормативов выбросов, нарушение

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

По данным инспекции Нижегородгоркомприроды выявлены превышения установленных нормативов на 110 источниках 16 предприятий. В эксплуатации в

1995 г. находилось 77 неисправных установок очистки газов, 17 установок работали неэффективно. На 26 предприятиях не выполнены запланированные мероприятия по сокращению вредных выбросов в атмосферу.

Штрафные санкции к предприятиям и должностным лицам не всегда помогают исправить сложившееся положение,

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

Icreadme

Возможно не удалось распознать кодировку файла

хз чё там с размерами, не хватает наверняка

По всей видимости файл пустой

antigtu.ru

скачано с антигту.ру

help

Два фото с ответами к первой части типовика

в папке - находите свой вариант,там номера 1 и 2 - это вторая часть расчета, 6,7 - третья часть

eldigi.ru

Скачано с сайта eldigi.ru

ReadME

Все права нифига не защищены и я вообще не знаю зачем создал этот файл =)

baumanki.net

ReadME

Все права нифига не защищены и я вообще не знаю зачем создал этот файл =)

baumanki.net

ReadME

Все права нифига не защищены и я вообще не знаю зачем создал этот файл =)

baumanki.net

Readme

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

Чтобы программа подошла к вашему варианту, нужно изменить в модуле:

- функции f (функция - по вариантам), f1 (ее первая производная), f2 (ее вторая производная);

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

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

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Нашёл ошибку?
Или хочешь предложить что-то улучшить на этой странице? Напиши об этом и получи бонус!
Бонус рассчитывается индивидуально в каждом случае и может быть в виде баллов или бесплатной услуги от студизбы.
Предложить исправление
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5140
Авторов
на СтудИзбе
442
Средний доход
с одного платного файла
Обучение Подробнее