Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

dimitriy7



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
{$I-}
{$N+}
 
const
n=35;
 
type arr=array[1..n] of double;
 
function newfile(filename: string; n: integer): integer;
 
         var
         i: integer;
         f: text;
 
         begin
         randomize;
         newfile:=n;
         writeln('Будет создан новый файл ',filename,' и заполнен ',n,' случайными числами');
         assign(f,filename);
         rewrite(f);
         if IOResult<>0 then
            begin
            {close(f);}
            writeln('Файл ',filename,' не создан');
            newfile:=-1;
            exit;
            end;
         for i:=1 to n do
             begin
             write(f,(25-(random*500)/10):8:3);
             if (i mod 10)=0 then writeln(f,'');
             end;
         writeln(f,'');
         close(f);
         end;
 
function readfromfile(filename: string; n: integer; var a: arr): integer;
 
         var
         i: integer;
         f: text;
 
         begin
         readfromfile:=n;
         writeln('Поиск и чтение файла ',filename,' ...');
         assign(f,filename);
         reset(f);
         if IOResult<>0 then
            begin
            {close(f);}
            writeln('Файл ',filename,' не существует');
            readfromfile:=-1;
            exit;
            end;
         for i:=1 to n do
             begin
             if SeekEof(f) then
                begin
                close(f);
                writeln('В файле ',filename,' обнаружено ',i-1,' элементов вместо ',n);
                readfromfile:=i-1;
                exit;
                end;
             read(f,a[i]);
             if IOResult<>0 then
                begin
                close(f);
                writeln('Файл ',filename,' не соответствует формату');
                readfromfile:=-1;
                exit;
                end;
             end;
         close(f);
         end;
 
function writetofile(filename: string; n: integer; var a: arr): integer;
 
         var
         i: integer;
         f: text;
 
         begin
         writetofile:=n;
         writeln('Запись в конец существующего файла ',filename,' ...');
         assign(f,filename);
         append(f);
         if IOResult<>0 then
            begin
            {close(f);}
            writeln('Файл ',filename,' не существует');
            writetofile:=-1;
            exit;
            end;
         writeln(f,'');
         writeln(f,'After processing:');
         for i:=1 to n do
             begin
             write(f,a[i]:8:3);
             if (i mod 10)=0 then writeln(f,'');
             end;
         writeln(f,'');
         close(f);
         end;
 
function writetonewfile(filename: string; n: integer; var a: arr): integer;
 
         var
         i: integer;
         f: text;
 
         begin
         writetonewfile:=n;
         writeln('Запись в файл ',filename,' ...');
         assign(f,filename);
         rewrite(f);
         if IOResult<>0 then
            begin
            {close(f);}
            writeln('Файл ',filename,' не создан');
            writetonewfile:=-1;
            exit;
            end;
         for i:=1 to n do
             begin
             write(f,a[i]:8:3);
             if (i mod 10)=0 then writeln(f,'');
             end;
         writeln(f,'');
         close(f);
         end;
 
var
filename1,filename2: string;
c,p: arr;
i,m: integer;
min,max: double;
 
begin
 
writeln('Введите имя входного файла:');
repeat
readln(filename1);
until length(filename1)>0;
 
if readfromfile(filename1,n,c)<n then
   begin
   if newfile(filename1,n)<n then
      begin
      writeln('');
      writeln('Нажмите ENTER');
      readln;
      halt;
      end;
   readfromfile(filename1,n,c);
   end;
 
writeln('');
writeln('Исходный массив K:');
for i:=1 to n do write(c[i]:8:3);
writeln('');
 
min:=c[1];
max:=c[1];
for i:=1 to n do
    begin;
    if c[i]<min then min:=c[i];
    if c[i]>max then max:=c[i];
    end;
 
writeln('');
writeln('Минимальное значение в массиве K:  ',min:8:3);
writeln('Максимальное значение в массиве K: ',max:8:3);
 
m:=0;
for i:=1 to n do
    if c[i]>((max+min)/3) then
       begin
       inc(m);
       p[m]:=c[i];
       end;
 
writeln('');
writeln('Массив M из тех элементов K, значение которых больше (max+min)/3 =',((max+min)/3):8:3,':');
for i:=1 to m do write(p[i]:8:3);
writeln('');
 
writeln('');
writeln('Введите имя выходного файла:');
repeat
readln(filename2);
until length(filename2)>0;
 
if filename2=filename1 then writetofile(filename2,m,p) else writetonewfile(filename2,m,p);
 
writeln('');
writeln('Нажмите ENTER');
readln;
 
end.
 


Всего записей: 2946 | Зарегистр. 09-10-2008 | Отправлено: 16:22 09-01-2012 | Исправлено: dimitriy7, 17:08 09-01-2012
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Pascal/Object Pascal/Free Pascal (Delphi/Lazarus)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru