Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 20

Найдите ошибку в коде

16.12.2014, 20:01. Показов 598. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем нужно оформить три процедуры: Ввод,вывод и обработка данных. ввод работает,вывод вроде бы тоже,только обработка хромает.
Кто найдёт-с меня вкусняшка)))


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
82
83
84
85
86
87
88
89
90
91
92
uses
  crt;
type
  tAr = array[1..255] of integer;
  
procedure vvod_arr(var ar: tAr; var n: integer);
var
  f1,f2:text;
  i: integer;
begin
  assign(f1,'in.txt');
  reset(f1);
  assign(f2,'out.txt');
  rewrite(f2);
  readln(f1,n);
end;
procedure obrabotka(var ar: tAr; var n: integer);
var
  f1,f2:text;
  i, firstZeroPos, lastZeroPos: integer;
begin
  writeln(' ');
  writeln('[+] Ноль найден ');
  firstZeroPos := -1;
  lastZeroPos := -1;
  for i := 1 to n do
  begin
    if(firstZeroPos = -1) and (ar[i] = 0) then begin
      firstZeroPos := i;
      continue;
    end;
    if(ar[i]= 0) then lastZeroPos:=i;
  end;
  if(firstZeroPos <> -1) and (lastZeroPos <> -1) then begin
    writeln('[+] Ноль найден: ');
    writeln('    [!] Первый ноль в: ',firstZeroPos); {порядковый номер массива}
    writeln('    [!] последний ноль в:  ',lastZeroPos); {порядковый номер массива}
    writeln('    [!] Массив между нулем :');
    for i := firstZeroPos to lastZeroPos do
    begin
      write(' ',ar[i]);
      write(f2,ar[i],' ');
    end;
  end
    else
  if (firstZeroPos <> -1) and (lastZeroPos = -1) then begin
    writeln('[+] Ноль найден: ');
    writeln('    [!] Первый ноль в: ',firstZeroPos); {порядковый номер массива}
    writeln('    [!] последний ноль в:  None'); {порядковый номер массива}
    writeln('    [!] Массив между нулем :');
    for i := firstZeroPos to n do
    begin
      write(' ',ar[i]);
      write(f2,ar[i],' ');
    end;
  end
  else begin
    writeln('[+] Ноль не найден: ');
    writeln('    [!] Массив :');
    for i := 1 to n do
    begin
      write(f2,ar[i],' ');
      write(' ',ar[i]);
    end;
  end;
end; 
 
procedure Vivod_arr(ar: tAr; n: integer);
var
  f1:text;
  i: integer;
begin
     assign(f1,'in.txt');
     reset(f1);
     writeln('[+] Длина массива: ',n);
     for i := 1 to n do begin
    read(f1,ar[i]);
    write(' ');
    write(' ',ar[i]:1);
    
end;
end;
 
var
  ar: tAr;
  n: integer;
begin
  vvod_arr(ar, n);
  Vivod_arr(ar, n);
  obrabotka(ar, n);
  readln;
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.12.2014, 20:01
Ответы с готовыми решениями:

Найдите ошибку в коде
Дано множество А. Проверить входят ли элементы множества А в множество, состоящее из элементов объединения букв от «f» до «q» и цифр. ...

Найдите пожалуйста ошибку в коде
uses crt; var x:arrayof integer; S,T,U,i,n:integer; y:real; begin n:=0; write('Введите размерность массива-&gt;'); readln(n); ...

Найдите ошибку в коде программы, условие таково: дана целочисленная матрица m*n. Найти количество ее строк, все элементы которых различны
uses crt; var a:array of integer; i,j,m,n,x,s:integer; begin clrscr; randomize; write('Кол-во строк: '); ...

9
26 / 26 / 42
Регистрация: 25.03.2014
Сообщений: 233
16.12.2014, 21:01
Может быть вы скажете, что должна делать обработка?
0
0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 20
17.12.2014, 12:04  [ТС]
IceCortez, Сформировать массив,составленный из элементов исходного массива,расположенных:
-между первым и последними элементами,имеющими нулевое значение, если нулей больше одного;
-между нулем и последним элементом,если нуль один;
-между первым и последним элементами, если нулей нет.
0
26 / 26 / 42
Регистрация: 25.03.2014
Сообщений: 233
17.12.2014, 14:24
Еще бы хорошо приложить тест, на котором это работает неправильно.
0
0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 20
17.12.2014, 15:16  [ТС]
IceCortez,
0
26 / 26 / 42
Регистрация: 25.03.2014
Сообщений: 233
17.12.2014, 15:32
Как это не странно, но не правильно работает ввод самого массива, в итоге он просто заполнен нулями. Почему? Не знаю.

Добавлено через 5 минут
Все, разобрался. В процедуре, в которой вы вводите массив, надо написать var перед ar, иначе вы будете считывать все данные для массива, видимого только в этой процедуре.
0
0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 20
19.12.2014, 15:34  [ТС]
IceCortez, всё равно не работает.(
0
26 / 26 / 42
Регистрация: 25.03.2014
Сообщений: 233
19.12.2014, 15:42
У меня все прекрасно работает.
0
0 / 0 / 0
Регистрация: 24.11.2014
Сообщений: 20
19.12.2014, 15:51  [ТС]
IceCortez, отправьте в личку код,может я уже намудрил чего-то
0
26 / 26 / 42
Регистрация: 25.03.2014
Сообщений: 233
19.12.2014, 15:55
Все, что я поменял.
Строку
Pascal
1
procedure Vivod_arr(ar: tAr; n: integer);
На
Pascal
1
procedure Vivod_arr(var ar: tAr; n: integer);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.12.2014, 15:55
Помогаю со студенческими работами здесь

Найдите ошибку в программном коде
program Project2; {$APPTYPE CONSOLE} uses crtl; function Rus(mes:string): string; var i: integer; begin for i:=1 to...

Найдите ошибку в коде построения структуры данных
Построить структуру данных которая на рисунке и реализовать процедуру чтения данных в указаном порядке Проблема заключается в том, что...

Найдите ошибку в коде (Заменить нулями элементы на главной диагонали матрицы и выше)
Есть задание : Дана матрица nxn.1)Заменить нулями эл-ты на главной и выше 2) Посчитать сумму эт-тов, расп. на побочной диагонали и ниже ...

Двумерный массив. Поиск нулей.Не могу найти ошибку ошибку в коде
Вот,например массив 5 5 0 1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 0 считываются два числа m и n и далее в выходной...

Найдите ошибку
const n=10; var a:array of integer; var i,j,k,p: integer; begin for i:=1 to n do begin write ('a='); readln(a);


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru