№1
Создать файл для хранения действительных чисел, вводимых с клавиатуры. Прочитать этот файл и вычислить минимальное по абсолютной величине число.
[syntax='delphi']
program lab7_1;
var
f : file of integer;
i : integer;
min : integer;
begin
WriteLn('задание 1');
Assign(f, 'input.dat');
Rewrite(f);
WriteLn('введите числа. 0 – хватит!');
repeat
ReadLn(i);
if i <> 0 then Write(f, i);
until i = 0;
Close(f);
min := MaxInt;
Assign(f, 'input.dat');
Reset(f);
while not Eof(f) do begin
Read(f, i);
i := Abs(i);
if i < min then min := i;
end;
Close(f);
WriteLn('минимальное по абсолютной величине число: ', min);
WriteLn;
Write('Enter ...'); ReadLn;
end.
[/syntax]
здесь нужно сделать минимальный по модулю а не модуль по минимальному... как это будет на коде ?
№2
Создать текстовый файл средством редактора. Читать этот файл построчно и произвести в каждой строке следующие действия: вставить два нуля между двумя соседними латинскими буквами.
[syntax='delphi']
program lab7_2;
const
Lat : set of char = ['a'..'z', 'A'..'Z'];
var
fi : Text;
fo : Text;
c, Old : char;
Name1, Name2 : string;
begin
WriteLn('задание 2');
WriteLn('введи имя файла для чтения');
ReadLn(Name1);
WriteLn('введи имя файла для записи');
ReadLn(Name2);
Assign(fi, Name1);
Reset(fi);
Assign(fo, Name2);
Rewrite(fo);
Old := ' ';
while not Eof(fi) do begin
Read(fi, c);
if (Old in Lat) and (c in Lat) then Write(fo, '00');
Write(fo, c);
Old := c;
end;
Close(fo);
Close(fi);
WriteLn('Всё просто супер!!!¬');
WriteLn;
Write('Enter ...'); ReadLn;
end.
[/syntax]
как здесь сделать вставку инсёртом? как это будет выглядеть на коде ?
№3
Дано k литерных строк. Каждая строка содержит латинские и русские буквы, цифры, а также все возможные разделители. Требуется:
1)Выделить из каждой строки и напечатать подстроки ограниченные с обеих сторон одной или несколькими русскими буквами.
2)Среди выделенных подстрок найти подстроку содержащую максимальное число цифр.
3).Вставить три звездочки перед последней цифрой исходной строки, которой принадлежит найденная подстрока.
[syntax='delphi']
program lab6;
const
lmax = 20;
Rus : set of char = ['а'..'я', 'А'..'Я'];
Digit : set of char = ['0'..'9'];
var
s : array[1..lmax] of string;
s1 : array[1..lmax] of string;
k, n : integer;
i : integer;
procedure Task1;
var
Start : integer;
Stop : integer;
j : integer;
c : integer;
begin
WriteLn;
WriteLn('задание 1');
c := 0;
for i := 1 to k do begin
Start := 1;
while (Start < Length(s)) and not (s[Start] in Rus) do inc(Start);
Stop := Length(s);
while (Stop > Start) and not (s[Start] in Rus) do dec(Stop);
if (Stop <> Start) then
begin
s1 := copy(s, Start, Stop);
с=с+1;
end
else s1 := '';
end;
if (c = 0) then
WriteLn('Нет подстрок, ограниченных с обеих сторон русскими буквами ')
else
begin
WriteLn('Выделенные подстроки:');
for i := 1 to k do
if Length(s1) > 0 then WriteLn(s1);
end;
end;
procedure Task2;
var
j : integer;
c, max : integer;
begin
WriteLn;
WriteLn('Задание 2');
max := 0;
for i := 1 to k do
begin
c := 0;
n := 0;
for j :=1 to Length(s1) do
if s1[i][j] in Digit then
c:=c+1;
if (c > max) then begin
max := c;
n := i;
end;
end;
if (n = 0) then
WriteLn('Нет подстрок, содержащих цифры ')
else
begin
WriteLn('Подстрока, содержащая максимальное количество цифр:');
WriteLn(s1[n]);
end;
end;
procedure Task3;
var
j,f,p: integer;
begin
WriteLn;
WriteLn('Задание 3');
if (n <> 0) then
begin
for f:=1 to length(s[n]) do
if (s[n][f] in digit) then
p:=f;
Insert('***', s[n], j+1);
end;
if (n = 0) then
WriteLn('Нет подстрок, содержащих цифры')
else
begin
WriteLn('Результирующая строка:');
WriteLn(s[n]);
end;
end;
begin
Repeat
Write('Введите количество строк:');
ReadLn(k);
Until (k>0) and (k<=lmax);
WriteLn('Введите ', k, ' строк:');
for i := 1 to k do ReadLn(s[i]);
Task1;
Task2;
Task3;
WriteLn;
Write('Enter ...');
ReadLn;
end.
[/syntax]
как тут сделать чтоб она не выводила пустую строку? и тут как то криво с поиском последней латинской буквы.... можете помочь....
помогите переделать...
-
- Сообщения: 5
- Зарегистрирован: 27 окт 2008, 18:04
и даже никто не ответил? 30 просмотров........
слишком много кода, надрали готовых заданий, так разберитесь в них
или предлагайте цену
или предлагайте цену