![]() |
#1 (permalink) |
Member
Регистрация: 09.12.2012
Сообщений: 45
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]() Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл. Определить первое по порядку отрицательное и последнее положительное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Предусмотреть случай, когда таких чисел в файле нет. Оставить в файле только числа, находящиеся между ними. Program Variant_8; var n, i, x, y: integer; a:array[0..20] of integer; begin WriteLn('Laboratornaya rabota #8_1'); WriteLn('Variant #8'); WriteLn('IS-12-2'); WriteLn('Hamchuk Evgeniy'); WriteLn; writeln('Input of numbers, the end input - 0'); assign(output, 'C:\users\STEAM\output.txt'); rewrite(output); n := -1; x := -1; y := -1; while(true) do begin read(i); if i = 0 then break; write(i, ' '); n := n + 1; end; close(output); assign(input, 'C:\users\STEAM\output.txt’); reset(input); for i := 0 to n do begin read(a[i]); if (a[i] < 0) and (x < 0) then x := i; if a[i] > 0 then y := i; end; close(input); assign(output, 'C:\users\STEAM\output.txt’); rewrite(output); if x = -1 then writeln('There are no negative numbers') else if y = -1 then writeln(' There are no positive numbers') else for i := x + 1 to y - 1 do write(a[i], ' '); end. Задание №2 Создать текстовый файл, в который построчно записать прямоугольный массив massivnm, заполненный целыми случайными числами в диапазоне от v_min до v_max. Размеры массива n и m задать константами. Границы диапазона v_min и v_max задать с консоли. Вывести на экран строку с минимальной суммой элементов и столбец с максимальной суммой элементов. При чтении из файла считать размеры массива неизвестными. Определить их при чтении файла. Program Variant_8; var n, m, i, j, v_min, v_max, min, max: integer; s : array [1..20] of integer; a:array[1..20, 1..20] of integer; begin WriteLn('Laboratornaya rabota #8_2'); WriteLn('Variant #8'); WriteLn('IS-12-2'); WriteLn('Hamchuk Evgeniy'); WriteLn; writeln('Inter v_min и v_max'); readln(v_min, v_max); assign(output, 'C:\users\STEAM\output.txt'); rewrite(output); writeln('4 5'); for i := 1 to 4 do begin for j := 1 to 5 do write(random(v_max - v_min+1)+ v_min, ' '); writeln; end; close(output); assign(input, 'C:\users\STEAM\output.txt'); reset(input); readln(n, m); min := 1; max := 1; for i := 1 to n do begin s[i] := 0; for j := 1 to m do begin read(a[i, j]); s[i] := s[i] + a[i, j]; end; if s[i] < s[min] then min := i; end; close(input); for j := 1 to m do begin s[j] := 0; for i := 1 to n do s[j] := s[j] + a[i, j]; if s[j] > s[max] then max := j; end; assign(output, 'C:\users\STEAM\answer.txt'); rewrite(output); writeln('Stroka s min summoy elementov - ', min); writeln('Stolbec s max summoy elementov - ', max); close(output); end. |
![]() |
![]() |
![]() |
|
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Прочитайте, и я уверен, что ситуация станет ясней Файлы в Паскаль Типизированные файлы, Паскаль |
![]() |
#3 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]() Цитата:
И еще вопрос: какой у Вас Паскаль? Потому что с файлами input, output, создаваемыми по умолчанию, я встречался только в ископаемом ANSI-Паскале и полагал, что подобная чушь давно и прочно забыта. Просветите, пожалуйста. |
|
![]() |
![]() |
![]() |
#5 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]() |
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
#9 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,809
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
![]()
Посмотрите вариант первой задачи. Я сделал без массива, но с двумя файлами. Имена файлов и пути поправьте, как Вам надо. И не удивляйтесь, если, открыв в текстовом редакторе созданные программой файлы, Вы вместо чисел увидите непонятный набор символов. Так и должно быть, это свойство типизированных файлов. В отличие от текстовых.
Код:
Program Variant_8; var i,i1,i2,x: integer; f,f1:file of integer; Begin WriteLn('Laboratornaya rabota #8_1'); WriteLn('Variant #8'); WriteLn('IS-12-2'); WriteLn('Hamchuk Evgeniy'); WriteLn; Assign(f,'D:\xxx'); Rewrite(f); Writeln('Input of numbers, the end input - 0'); i:=0; Repeat write('Element N',i,': '); readln(x); if x<>0 then write(f,x); Inc(i); Until x=0; Writeln; Close(f); Reset(f); Repeat read(f,x); write(x:4); Until EoF(f); Writeln; Writeln; i:=-1; i1:=-1; i2:=-1; Reset(f); Repeat Inc(i); Read(f,x); If x<0 then i1:=i; Until (x<0) or EoF(f); i:=-1; Reset(f); Repeat Inc(i); Read(f,x); If x>0 then i2:=i; Until EoF(f); If i1=-1 then Writeln('File contains no negative elements') else If i2=-1 then Writeln('File contains no positive elements') else If Abs(i2-i1)=1 then Writeln('There are no elements between first negatine and last positive') else begin if i1>i2 then begin x:=i1; i1:=i2; i2:=x; end; Reset(f); Assign(f1,'D:\yyy'); Rewrite(f1); i:=-1; repeat inc(i); read(f,x); if (i>i1) and (i<i2) then write(f1,x); until EoF(f); Close(f); Close(f1); Reset(f1); repeat read(f1,x); write(x:4); until EoF(f1); Close(f1); end; Readln End. |
![]() |
![]() |
![]() |
#10 (permalink) |
Member
Регистрация: 09.12.2012
Сообщений: 45
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
![]()
Владимир, у меня вылетает такая вот ошибка. И в файле написана только одна строка. Так и должно быть или что то не так?
|
![]() |
![]() |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
![]() |
Опции темы | |
Опции просмотра | |
|
|