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

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

23.06.2009, 14:05. Показов 1502. Ответов 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
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
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
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
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
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
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
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
23.06.2009, 17:47
Да заковыка в том что он файл не открыл для чтения.
1
 Аватар для Jazon_deenAlt
4117 / 999 / 191
Регистрация: 09.04.2009
Сообщений: 4,223
23.06.2009, 17:49
уважаемый Puporev, извините что вмешался ... вырвалось(
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
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
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru