Главная страница Случайная лекция Мы поможем в написании ваших работ! Порталы: БиологияВойнаГеографияИнформатикаИскусствоИсторияКультураЛингвистикаМатематикаМедицинаОхрана трудаПолитикаПравоПсихологияРелигияТехникаФизикаФилософияЭкономика Мы поможем в написании ваших работ! |
Текст программы к задаче 13.1
ProgramEx_12_1; Uses Crt; Label A; Var f2: file of integer; x: integer; {компонента} i: integer; {счетчик цикла} S: integer; {сумма} Max: integer; {максимум} k: integer; {номер максимума} Begin ClrScr; Randomize; Assign(f2, ‘g:\f2.dat’); {Запись чисел в файл} Rewrite(f2); Writeln(‘Исходный файл:’); Writeln; For i:=0 to 15 do begin x:=random(100)-50; Write(f2, x); Write(x:3); End; {Подсчет суммы нечетных компонент} Reset(f2); Fori:=0to15 do begin Read(f2, x); If x mod 2<>0 then S:=S+x; End; Reset(f2); Read(f2, x); Max:=x; {Примем первую компоненту за Max} Fori:=1 to15 do begin Read(f2, x); If x>Max then begin Max:=x; {Поиск Max в файле} k:=i End; Seek(f2, k); {Запись суммы вместо Max в файле} Write(f2, S); {Вывод результатов} Writeln(‘Измененный файл:’); Writeln; Reset(f2); While not Eof(f2) do begin Read(f2, x); Write(x:3); End; Close; Readln; End. Задача 13.2 Найти первое отрицательное и последнее отрицательное значения среди компонент типизированного файла, и поменять местами эти компоненты в файле. Найти произведение компонент файла, стоящих между первым отрицательным и последним отрицательным значением. Текст программы к задаче 13.2 ProgramEx_12_2; Uses Crt; Label A; Var f1: file of integer; x: integer; {компонента} Otr1, Otr2: integer; {отрицательные} k1, k2: integer; {номера отриц.} i: integer; {счетчик цикла} Begin ClrScr; Randomize; Assign(f1, ‘g:\f1.dat’);
{Запись чисел в файл} Rewrite(f1); Writeln(‘Исходный файл:’); Writeln; For i:=0 to 15 do begin x:=random(100)-50; Write(f1, x); Write(x:3); End; {Поиск первого отрицательного} Reset(f1); Fori:=0to15 do begin Read(f1, x); If x<0 then begin Otr1:=x; k1:=i; Goto A; {Как только нашли, выходим из цикла} End; End; {Поиск последнего отрицательного} A: Reset(f1); Fori:=0to15 do begin Read(f1, x); If x<0 then begin Otr2:=x; k2:=i; End; End; {Обмен в файле значений местами } Seek(f1, k1); Write(f1, Otr2); Seek(f1, k2); Write(f1, Otr1); {Подсчет суммы ком. между k1 и k2} i:=k1+1; Repeat Seek(f1, i); Read(f1,x); S:=S+x; i:=i+1; Until i<k2; {Вывод результатов} Writeln(‘Измененный файл:’); Writeln; Reset(f1); While not Eof(f1) do begin Read(f1, x); Write(x:3); End; Close(f1); Readln; End. Схема программы к задаче 13.2
Дата добавления: 2015-06-30; просмотров: 218; Нарушение авторских прав Мы поможем в написании ваших работ! |