Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 22.06.2009
Сообщений: 5

Подпрограммы,массивы,текстовые файлы(!покажите ошибки!).

23.06.2009, 14:05. Показов 1538. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу, подскажите, где у меня ошибки? Не понимаю...
Привожу код и сообщения при запуске:
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
program Project2;
 
{$APPTYPE CONSOLE}
{
Записать в файл f   N натуральных чисел. Получить в другом файле все компоненты файла f, 
кроме тех, которые кратны К. Вывести полученный файл на печать.
}
uses
   SysUtils;
var f,g:text;
    N,a,i,k,j:integer;
begin
assign(f,'file1.txt');
rewrite(f);
assign(g,'file2.txt');
rewrite(g);
write('Vvedite kolichestvo chisel N=');
readln(N);
write('k=');
readln(k);//вводим число
procedure zap (var f:text; N:integer);
var i,a:integer;
begin
for i:=1 to N do
  begin
    readln(a); //читаем числа
    write(f,a,' '); //записываем в файл
   end;
end;
procedure vivod (var g:text; f:text; N:integer; k:integer);
var i,j,a:integer;
begin
reset(f);//открываем файл для чтения
i:=0;j:=0;
while not eof(f)and(i<N) do//пока не конец файла и не кончились числа
  begin
    i:=i+1;
    read(f,a);//читаем числа
    if a mod k<>0 then
      begin
       write(g,a,' ');  //если не кратные, записываем в новый файл
       j:=j+1; //считаем
      end;
  end;
reset(g);//открываем файл для чтения
Writeln('Fail rezultata G:');
i:=0;
while not eof(f)and(i<j) do //выводим содержимое файла
  begin
    i:=i+1;
    read(g,a);
    write(a,' ');
  end;
end;
zap(f,N);
vivod(g,f,N,k);
readln;
end.
Build
[Error] Project1.dpr(20): Statement expected but 'PROCEDURE' found
[Error] Project1.dpr(29): File type not allowed here
[Error] Project1.dpr(54): Declaration expected but identifier 'zap' found
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.06.2009, 14:05
Ответы с готовыми решениями:

Несколько программ, подпрограммы, массивы, файлы
Помогите пожалуйста с написанием... 1. Составить и реализовать программу используя процедуры, в которой будет создан одномкрный...

текстовые файлы
задача: 1)создать текстовый файл f, содержащий различные даты, каждая дата - это число, месяц, год 2) найти все весенние даты...

текстовые файлы
вот задача: В файле хранятся строки. Найти строку, содержащую наименьшее количество символов и создать новый файл, который будет начинаться...

13
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
23.06.2009, 14:27
вот так должно работать)
Delphi
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
program Project2;
 
{$APPTYPE CONSOLE}
{
Записать в файл f   N натуральных чисел. Получить в другом файле все компоненты файла f, 
кроме тех, которые кратны К. Вывести полученный файл на печать.
}
 
uses
   SysUtils;
var f,g:text;
    N,a,i,k,j:integer;
 
procedure zap (var f:text; N:integer);
var i,a:integer;
begin
for i:=1 to N do
  begin
    readln(a);
    write(f,a,' '); 
   end;
end;
 
procedure vivod (var g,f:text;  N:integer; k:integer);
var i,j,a:integer;
begin
reset(f);
i:=0;j:=0;
while not eof(f)and(i<N) do
  begin
    i:=i+1;
    read(f,a);
    if a mod k<>0 then
      begin
       write(g,a,' '); 
       j:=j+1;
      end;
  end;
begin
assign(f,'file1.txt');
rewrite(f);
assign(g,'file2.txt');
rewrite(g);
write('Vvedite kolichestvo chisel N=');
readln(N);
write('k=');
readln(k);
 
reset(g);
Writeln('Fail rezultata G:');
i:=0;
while not eof(f)and(i<j) do 
  begin
    i:=i+1;
    read(g,a);
    write(a,' ');
  end;
end;
zap(f,N);
vivod(g,f,N,k);
readln;
end;
end.
Добавлено через 16 минут 5 секунд
А теперь по ошыбках процедуры идут после "вара" програмы но перед "бегином"
g и f я обьявил вместе...
пропало после перестановки процедур на им положеное место)
1
0 / 0 / 0
Регистрация: 22.06.2009
Сообщений: 5
23.06.2009, 15:56  [ТС]
Хм... теперь с учетеом исправления, я добился вот этого окошка:
Project raiset exception class EInOutError with message 'I/O erroe 104'.Process stopped.Use step or run to continue.
После этого встает на стоку 42
Delphi
1
read(g,a);
Что-то тупняк у меня крепчает.Выручайте!
Delphi
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
program Project3;
 
{$APPTYPE CONSOLE}
{
Записать в файл f   N натуральных чисел. Получить в другом файле все компоненты файла f,
кроме тех, которые кратны К. Вывести полученный файл на печать.
}
uses
   SysUtils;
var f,g:text;
   N,k:integer;
procedure zap (var f:text; N:integer);
var i,a:integer;
  begin
    for i:=1 to N do
      begin
        readln(a); //читаем числа
        write(f,a,' '); //записываем в файл
      end;
  end;
procedure vivod (var g,f:text;  N:integer; k:integer);
var i,j,a:integer;
begin
  reset(f);//открываем файл для чтения
  i:=0;j:=0;
  while not eof(f)and(i<N) do//пока не конец файла и не кончились числа
    begin
      i:=i+1;
      read(f,a);//читаем числа
      if a mod k<>0 then
        begin
          write(g,a,' ');  //если не кратные, записываем в новый файл
          j:=j+1; //считаем
        end;
    end;
  Writeln('Fail rezultata G:');
  i:=0;
  while not eof(f)and(i<j) do //выводим содержимое файла
    begin
      i:=i+1;
      read(g,a);
      write(a,' ');
    end;
end;
begin
  assign(f,'file1.txt');
    rewrite(f);
  assign(g,'file2.txt');
    rewrite(g);
  write('Vvedite kolichestvo chisel N=');
    readln(N);
  write('k=');
    readln(k);//вводим числа
  zap(f,N);
  vivod(g,f,N,k);
    close(f);
    close(g);
readln;
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.06.2009, 16:06
Если здесь
Pascal
1
2
3
4
5
6
7
while not eof(f)and(i<j) do 
  begin
    i:=i+1;
    read(g,a);
    write(a,' ');
  end;
end;
то догадайся с 3х раз.
0
0 / 0 / 0
Регистрация: 22.06.2009
Сообщений: 5
23.06.2009, 16:30  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
догадайся с 3х раз.
Да, действительно,я же говорил тупняк.
Исправил, но от описанной выше ошибки это не избавило
Проклятущее окошко так и вылазит!
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.06.2009, 17:40
Исправил,
А что и как исправил?

Добавлено через 22 минуты 47 секунд
Напиши так.
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
uses
crt;
var f,g:text;
   N,k,j:integer;
procedure zap (var f:text; N:integer);
var i,a:integer;
  begin
    for i:=1 to N do
      begin
        readln(a);
        write(f,' ',a);
      end;
  end;
procedure vivod (var g,f:text;  N:integer; k:integer;var j:integer);
{значение параметра j надо передать в программу, иначе что-нибудь типа ноля в итоге выведет}
var i,a:integer;
begin
  reset(f);
  i:=0;
  while not eof(f)and(i<N) do
    begin
      i:=i+1;
      read(f,a);
      if a mod k<>0 then
        begin
          write(g,a,' ');
          j:=j+1;
        end;
    end;
  Writeln('Fail rezultata G:');
  i:=0;
  reset(g);{ну а это главная ошибка, файл то открыть надо}
  while not eof(g)and(i<j) do
    begin
      i:=i+1;
      read(g,a);
      write(a,' ');
    end;
end;
begin
clrscr;
  assign(f,'file1.txt');
    rewrite(f);
  assign(g,'file2.txt');
    rewrite(g);
  write('Vvedite kolichestvo chisel N=');
    readln(N);
  write('k=');
    readln(k);
  zap(f,N);
  vivod(g,f,N,k,j);
    close(f);
    close(g);
readln;
end.
0
0 / 0 / 0
Регистрация: 22.06.2009
Сообщений: 5
23.06.2009, 17:42  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
А что и как исправил?
Вот исправленный фрагмент:
Pascal
1
2
3
4
5
6
while not eof(g)and(i<j) do // пока не конец файла и не кончились числа
      begin
      i:=i+1;
      read(g,a); //читаем из файла
      write(a,' '); //пеишем на экран
    end;
А вот код, в актуальном состоянии.Выдает ту же ошибку но встает теперь на(51-52 строки):
Pascal
1
rewrite(g);  //создаем файл
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
program Project3;
 
{$APPTYPE CONSOLE}
{
Записать в файл f   N натуральных чисел. Получить в другом файле все компоненты файла f,
кроме тех, которые кратны К. Вывести полученный файл на печать.
}
uses
  SysUtils;
 
var f,g:text;
   N,k:integer;
procedure zap (var f:text; N:integer);  //процедура записи в файл
var i,a:integer;
  begin
    for i:=1 to N do  //до заданного количества чисел
      begin
        readln(a); //читаем числа
        write(f,a,' '); //записываем в файл
      end;
  end;
procedure vivod (var g,f:text;  N:integer; k:integer);//процедура вывода на экран
var i,j,a:integer;
begin
  reset(f);//открываем файл для чтения
  i:=0;j:=0;
  while not eof(f)and(i<N) do//пока не конец файла и не кончились числа
    begin
      i:=i+1;
      read(f,a);//читаем числа
      if a mod k<>0 then  //проверяем кратность
        begin
          write(g,a,' ');  //если не кратные, записываем в новый файл
          j:=j+1; //считаем
        end;
    end;
  Writeln('Fail rezultata:');
  i:=0;
  while not eof(g)and(i<j) do // пока не конец файла и не кончились числа
      begin
      i:=i+1;
      read(g,a); //читаем из файла
      write(a,' '); //пеишем на экран
    end;
end;
begin
  assign(f,'file2.txt');//связываем файл с переменной
    rewrite(f);   //создаем файл
  assign(g,'file2.txt'); //связываем файл с переменной
    rewrite(g);  //создаем файл
  write('Vvedite kolichestvo chisel N=');
    readln(N);
  write('Vvedite chislo dla opredelenia kratnosti k=');
    readln(k);//вводим числа
  zap(f,N);     //запускаем процедуры
  vivod(g,f,N,k);
    close(f); //закрываем файлы
    close(g);
readln;
end.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.06.2009, 17:45
Смотри выше.
0
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
23.06.2009, 17:46
я конечно не утверждаю, но мне кажетса заковыка тут
Pascal
1
2
3
4
 assign(f,'file2.txt');//связываем файл с переменной
    rewrite(f);   //создаем файл
  assign(g,'file2.txt'); //связываем файл с переменной
    rewrite(g);  //создаем файл
а именно с 'file2.txt' в обоих случаях...
1
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.06.2009, 17:47
Да заковыка в том что он файл не открыл для чтения.
1
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
23.06.2009, 17:49
уважаемый Puporev, извините что вмешался ... вырвалось(
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
23.06.2009, 17:50
Да ради Бога, это же форум.
0
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
23.06.2009, 17:51
вы про ресет?) тьху я чегойто не заметил) позор мне(((
0
0 / 0 / 0
Регистрация: 22.06.2009
Сообщений: 5
23.06.2009, 17:53  [ТС]
Точно, две заковыки. Теперь все заработало. Огромное спасибо за помошь!
Теперь есть шанс получить зачет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.06.2009, 17:53
Помогаю со студенческими работами здесь

Текстовые файлы
срочно нужно (Pascal) помогите пожалуйста

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

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

текстовые файлы
Создать в программе Блокнот текстовый файл. Написать программу, которая подсчитывает количество слов в созданном текстовом файле,...

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


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru