Помогите срочно!

  • Автор темы Kiryapes
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

Kiryapes

Гость
#1
Вот первая задача:
Дана действительная матрица размером n*m все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, затем среди этих чисел выбирается наибольшее. Указать индексы элемента с найденым значением.
Вторая задача:
Дан текст из строчных латинских букв, за которым следует точка. Напечатать все буквы, входящие в текст по одному разу.
Третья задача:
Создать файл содержащий произвольный текст. Проверить, правильно ли в нем раставленны круглые скобки.
Помогите плиЗ!
:unsure:
 
B

BurcevD

Гость
#2
Задача № 1
Код:
//Размерность массива, я указал 3 на 3, можно указать свою
const n=3;
m=3;
//Описание переменных
Var a:array[0..n-1,0..m-1] of real;
x,y:Integer;
First:Boolean;
Min,Max:Real;
MinX,MinY,MaxX,MaxY:Integer;
Begin
//Вводим значения элементов массива
Writeln('Source array...');
For y:=0 to n-1 do
For x:=0 to m-1 do
Begin
Write('Element ',x,'-',y,':');
Readln(a[y,x]);
end;
//Флаг, что первый раз ищем максимальный из минимальных элементов равен ИСТИНА
First:=True;
//Проходим каждую строку
For y:=0 to n-1 do
begin
//Вначале считаем, что минимальный элемент 0 в искомой строке
min:=a[y,0];
minx:=0;
miny:=y;
//ПРоходим всю строку
For x:=0 to m-1 do
//Если нашли еще меньший элемент, то
if (min>a[y,x]) then
begin
//Запоминаем его и его индексы
min:=a[y,x];
minx:=x;
miny:=y;
end;
//После того, как нашли минимальный элемент смотрим:
//Является он первым по списку или есть еще один минимальный элемент, 
//больший чем найденные ранее
if (First)or(Max<min) then
Begin
//Если да то запоминаем его как максимальный и запоминаем его индексы
Max:=min;
MaxX:=minx;
MaxY:=miny;
First:=false;
end;
end;
//Выводим исходный массив на экран
For y:=0 to n-1 do
begin
For x:=0 to m-1 do Write(a[y,x]:5:2);
Writeln;
end;
//Выводим максимальный элемент из минимальных, и его индексы Х и У
Writeln('Max element is ',max:5:2,' and indexes is X-',maxx,', Y-',maxy);
end.
Задача №2
Код:
//Описываем переменные
Var S:String;
i:Integer;
A:Array[0..255] of byte;
Begin
//Водим строку
Write('Inter string:');
Readln(s);
//Заполняем массив нулями
For i:=0 to 255 do a[i]:=0;
//Проходим всю строку
For i:=1 to length(S) do
//Выполняются следующие операции:
//1. Берется i-ый симво из строки
//2. Переводится в ASCII код - число от 0 до 255
//3. Элемент массива с этим номером увеличивается на 1
Inc(a[ord(s[i])]);
//Проходим весь массив
For i:=0 to 255 do
//Если символ встречался один раз, то выводим его на экран
if a[i]=1 then Writeln(chr(i));
end.
Задача №3

Код:
//Описываем переменные
Var F:Text;
S:String;
i:Byte;
Skoba:Integer;
Begin
//Отключаем ошибки
{$I-}
//Связываем переменную F с файлом, который хотим открыть
Assign(f,'input.txt');
//ПРобуем открыть его для чтения
Reset(f);
//Включаем проверку на ошибки
{$I+}
//Если произзошла какая-то ошибка, то сообщаем о ней
If IOResult<>0 then writeln('File not found...') else
begin
//Количество скоб равно 0
Skoba:=0;
//Пока не конец файла ..
WHile not EOF(F) do
begin
//Считываем строку
Readln(f,s);
//Проходим по строке
For i:=1 to Length(s) do
//Если встречается символ открытой скобки, то увеличиваем переменую Skoba на 1
If s[i]='(' then Inc(Skoba) else
//Если встречается символ закрытой скобки, то уменьшаем на один
If s[i]=')' then Dec(Skoba);
end;
//Закрываем файл
Close(F);
//Если количество скоб открытых равно закрытых, 
//т.е. переменная Skoba равно 0 то ошибок нет, в 
//противном случае есть ошибки, также можно отдельно узнать каких скоб не хватает 
//если переменная Skoba меньше 0, то не хватает открывающих скоб
//если больше 0, то не хватает закрывающих
If Skoba=0 then Writeln('No errors') else
Writeln('Error!!!');
end;
end.
 
Статус
Закрыто для дальнейших ответов.