Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/23: Рейтинг темы: голосов - 23, средняя оценка - 4.91
 Аватар для maliyusha
1 / 1 / 0
Регистрация: 25.12.2008
Сообщений: 41

Текстовые файлы в Паскале.

25.03.2009, 20:54. Показов 4899. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан текстовый файл f, содержащий целые числа от 1 до 100. Подготовить новый файл для печати этих чисел в две колонки. В левой колонке должны быть размещены числа от 1 до 50, в правой колонке − числа от 51 до 100. Выровнять числа по левому краю.
Программа полностью неправильная или можно только вторую часть изменить? И как выровнять по условию в данном случае? Помогите,пожалуйста!
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Uses crt;
var
  F,F2:Text;
  i,N,W:{integer;}longint;
  S,S2:string;
begin
  clrscr;
  writeln('      Fail F');
  assign(F,'100.txt');
  assign(F2,'100.txt');
  rewrite(F);
  rewrite(F2);
  randomize;
  for i:=1 to 100 do
   begin
    N:=random(100);
    write(F,N);
    write(N,' ');
   end;
  close(F);
  writeln;
  reset(F);
{2-ya chast programmy}
  writeln('      Fail F2');
  while not eof(F) do
   begin
  N:=(N+1) div 2;
  reset(F2);
  W:=0;
  for i:=1 to 10 do
   begin
    readln(F2,S);
    if length(S)>W then W:=length(S);
   end;
  reset(F);
  assign(F2,'100-2.txt');
  rewrite(F2);
  for i:=1 to 10 do
  if not eof(F2) then
  begin
  readln(F2,S2)
  end else
    begin
    S2:='';
    writeln(F2,S,'':W+5-length(S),S2);
   end;
  end;
  readln;
  close(F2);
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.03.2009, 20:54
Ответы с готовыми решениями:

Текстовые и типизированные файлы в паскале
На основании каких свойств текстовых и типизированных файлов можно полагать, что и с теми, и с...

Выделить последовательно три блока в памяти, поместить в них текстовые строки. После этого прочитать эти текстовые строк
Выделить последовательно три блока в памяти, поместить в них текстовые строки. После этого...

Текстовые файлы. Создать новый файл, объединив исходные файлы
даны текстовые файлы Name1 и Name2 .создать Name3 файл объединив Name1 и Name2 текстовые файлы

4
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.03.2009, 22:21
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Uses crt;
function Zn(a:byte):string;{Для начала маленькая функция для выравнивания по левому краю}
begin
if a div 10>=1 then Zn:='   '{если число в первом столбике 2х значное, то три пробела}
else Zn:='    ';{если однозначное, четыре}
end;
var
  F,F2:Text;
  i,N,k1,k2:byte;
  a1,a2:array[1..100] of byte;{соберем числа из файла в 2 массива, до 50 и больше}
begin
  clrscr;
  writeln('      Fail F');
  assign(F,'100.doc');{для вывода с выравниваем лучше этот тип файлов, чем блокнот}
  assign(F2,'101.doc');{второй файл, другое имя}
  rewrite(F);
  rewrite(F2);
  randomize;
  for i:=1 to 100 do
   begin
    N:=random(100)+1;
    write(F,N,' ');{вводим через пробел, иначе потом не прочитать}
    write(N,' ');
   end;
  writeln;
  reset(F);{перед первым чтением можно файл не закрывать}
{2-ya chast programmy}
  writeln('      Fail F2');
  k1:=0;k2:=0;
  for i:=1 to 100 do {лучше так, при while not eof, в конце может добавить лишний ноль}
   begin
     read(F,N);{читаем число}
     if N<51 then{если меньше 51}
       begin
         k1:=k1+1;{считаем}
         a1[k1]:=N;{в первый массив}
       end
     else {если больше 50, то же во второй массив}
      begin
         k2:=k2+1;
         a2[k2]:=N;
       end;
  end;
  close(F);
  if k1=k2 then {если массивы одинаковые}
    begin
     for i:=1 to k1 do
       begin
        writeln(F2,a1[i],Zn(a1[i]),a2[i]);{выводим в файл и на экран первое число, пробелы(3 или 4), второе число}
        writeln(a1[i],Zn(a1[i]),a2[i]);
       end;
    end
  else if k1>k2 then {если первый массив больше}
    begin
     for i:=1 to k2 do{до длины второго массива}
       begin
        writeln(F2,a1[i],Zn(a1[i]),a2[i]);{выводим также}
        writeln(a1[i],Zn(a1[i]),a2[i]);
       end;
     for i:=k2+1 to k1 do {выводим остаток первого массива}
       begin
        writeln(F2,a1[i]);
        writeln(a1[i]);
       end;
    end
  else if k2>k1 then {если второй длиннее}
    begin
     for i:=1 to k1 do {до конца первого}
       begin
        writeln(F2,a1[i],Zn(a1[i]),a2[i]);{выводим 2 столбца}
        writeln(a1[i],Zn(a1[i]),a2[i]);
       end;
     for i:=k1+1 to k2 do{остаток второго выводим в один столбец}
       begin
        writeln(F2,'     ',a2[i]);{6 пробелов}
        writeln(F2,'     ',a2[i]);
       end;
   end;
  readln;
  close(F2);
end.
0
 Аватар для maliyusha
1 / 1 / 0
Регистрация: 25.12.2008
Сообщений: 41
26.03.2009, 22:08  [ТС]
Ого так здорово большое спасибо.
Вопрос:
почему в
Pascal
1
2
3
4
5
6
for i:=1 to 100 do
   begin
    N:=random(100)+1;
    write(F,N,' ');{вводим через пробел, иначе потом не прочитать}
    write(N,' ');
   end;
ко 100 прибавляют 1, а не из 101 вычитают 1? Или принципиального отличия нет? Просто в большинстве учебных пособиях используется второй вариант
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
27.03.2009, 07:26
целые числа от 1 до 100
Если Вы напишете random(101)-1, то получите числа в интервале [-1,99], т.к. сначала сгенерируется интервал 0-100, потом вычтете единицу.
Если random(100)+1, то сначала 0-99, прибавляем 1, будет 1-100.
Просто в большинстве учебных пособиях используется второй вариант
Это используется, когда в интервале нужны отрицательные числа, например нужен интервал [-5,5]. Пишем random(11)-5, т.е. (0-10)-5=(-5,5).
0
 Аватар для maliyusha
1 / 1 / 0
Регистрация: 25.12.2008
Сообщений: 41
27.03.2009, 20:33  [ТС]
Все ясно, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.03.2009, 20:33
Помогаю со студенческими работами здесь

Как работает join и split в Паскале? И есть ли такие аналоги Питону в Паскале?
a=input() #из ' Hello world ' делаю 'Hello, world' a.strip(' ') a=', '.join(a.split(' ')) В...

Задача на текстовые файлы- ПОМОГИТЕ!!!
Задача на Паскале Сначала код программы, который вводиться с клавиатуры(программа может быть какой...

файлы(текстовые, типизированные)
реш-ть с помощью подпрограмм: 1) Дан файл из целых чисел. Подсчитать количество положительных,...

Текстовые файлы
Всем добрй день! Дана задача:дан текстовый файл F,содержащий строки различной длины. Переписать...

Программа на текстовые файлы
Здравствуйте! Помогите пожалуйста написать программу: Описать процедуру, которая построчно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Автозаполнение реквизита "Организация" (тип Справочник. Организации): / / Проверяем, заполнена ли. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru