Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   PascalABC: File1,16,31,46. (http://www.tehnari.ru/f43/t72203/)

Евгений1240 21.04.2012 19:38

PascalABC: File1,16,31,46.
 
PascalABC.
Помогите решить задачи. А то я в этих File не очень соображаю
File1.Дана строка S. Если S является допустимым именем файла, то создать пустой файл с этим именем и вывести True. Если файл с именем S создать нельзя, то вывести False.
File16.Дан файл целых чисел. Найти количество содержащихся в нем серий (т. е. наборов последовательно расположенных одинаковых элементов). Например, для файла с элементами 1, 5, 5, 5, 4, 4, 5 результат равен 4.
File31.Дан файл целых чисел, содержащий более 50 элементов. Уменьшить его размер до 50 элементов, удалив из файла необходимое количество начальных элементов.
File46.Дана строка S0, целое число N (≤ 4) и N файлов одного и того же типа с именами S1, …, SN. Объединить содержимое этих файлов (в указанном порядке) в новом файле с именем S0.

Vladimir_S 21.04.2012 19:57

Цитата:

Сообщение от Евгений1240 (Сообщение 721358)
File16.Дан файл целых чисел. Найти количество содержащихся в нем серий (т. е. наборов последовательно расположенных одинаковых элементов). Например, для файла с элементами 1, 5, 5, 5, 4, 4, 5 результат равен 4.

Это как? Я, например, вижу 2 серии. Откуда 4?

Евгений1240 21.04.2012 20:46

Цитата:

Сообщение от Vladimir_S (Сообщение 721368)
Это как? Я, например, вижу 2 серии. Откуда 4?

я сам не могу понять почему 4, хотя должно быть 3.

Евгений1240 21.04.2012 20:52

Цитата:

Сообщение от Vladimir_S (Сообщение 721368)
Это как? Я, например, вижу 2 серии. Откуда 4?

1,5,5,5,4,4,5
1-это серия
5,5,5-это серия
4,4-это серия
5-это серия
вот и получается 4 серии

Vladimir_S 21.04.2012 21:19

Ах, вот оно как... то есть одинокая цифра в окружении отличных от нее - тоже "серия"... Странно, ну да ладно.
Теперь по задачам. Я бы мог Вам помочь - но, увы, с одной оговоркой: я пишу программы только на нормальном Паскале (Turbo, Free, Borland) а этого "изделия №2" под названием АВС у меня никогда не было и не будет, а потому не знаю, пойдут ли мои программы на нем. Вот, например:
Цитата:

Сообщение от Евгений1240 (Сообщение 721358)
File1.Дана строка S. Если S является допустимым именем файла, то создать пустой файл с этим именем и вывести True. Если файл с именем S создать нельзя, то вывести False.

На Free (да и Turbo) это может быть решено, скажем, так:
Код:

Var
 f:Text;
 S:String;
Begin
 {$I-}
 Writeln('Enter the string:');
 Readln(S);
 Assign(f,S);
 Rewrite(f);
 Writeln(IOResult=0);
 Readln
End.

А вот понимает ли АВС указания типа {$I-} и есть ли у него функция IOResult, или эти придурки-авторы чего-то взамен своё напихали - не знаю.

Vladimir_S 22.04.2012 11:59

Ну эта вроде должна пройти на АВС:
Цитата:

Сообщение от Евгений1240 (Сообщение 721358)
File16.Дан файл целых чисел. Найти количество содержащихся в нем серий (т. е. наборов последовательно расположенных одинаковых элементов). Например, для файла с элементами 1, 5, 5, 5, 4, 4, 5 результат равен 4.

Код:

Var
 f:file of Byte;
 i,a1,a2,Num_of_Ser:Byte;
Begin
 Randomize;
 Num_of_Ser:=0;
 Assign(f,'D:\fff');
 Rewrite(f);
 For i:=1 to 20 do
  begin
  a1:=Random(8);
  write(f,a1);
  write(a1,' ');
  end;
 Close(f);
 Writeln;
 Writeln;
 a1:=9;
 Reset(f);
 Repeat
  read(f,a2);
  if a2<>a1 then Inc(Num_of_Ser);
  a1:=a2;
 Until EoF(f);
 Close(f);
 Writeln('Number of series is ',Num_of_Ser);
 Readln
End.


Евгений1240 22.04.2012 14:12

Спасибо 1 задача в паскале не идет, а 2 идет, осталось только File46 .

Vladimir_S 22.04.2012 16:18

Цитата:

Сообщение от Евгений1240 (Сообщение 721658)
Спасибо 1 задача в паскале не идет, а 2 идет, осталось только File46 .

В Паскале (нормальном!!!) как раз идет, иначе я бы не выложил. А вот как в этом дремучем АВС сделать - не ведаю. Подождите, может кто и ответит из знающих это... ладно, молчу.
Что касается File46 - тут, с моей точки зрения, написать универсальное решение невозможно: для каждого типа файла программа будет своя. Так что определитесь с типом (текстовый, числовой) - тогда сделаем.


Часовой пояс GMT +4, время: 14:23.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.