Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

Нужно найти ошибки

11.12.2009, 18:31. Показов 684. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Сыграем в игру найди ошибку
1) Даная программа должна бы положительные элементы увеличивать в два раза , она это и делает , но почему то первый элемент всегда равен 0 после работы процедуры .
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
program proga271;
uses crt;
const
n=10;
var
m:array[1..n] of integer;
s:array[1..n] of integer;
i:integer;
procedure sorting(var mas:array of integer;m:array of integer);
var
i:integer;
Begin
     for i:=1 to high(m) do if m[i]>0 then mas[i]:=m[i]*2
     else mas[i]:=m[i];
end;
Begin
     clrscr;
     randomize;
     for i:=1 to n do m[i]:=random(20)-10;
     writeln('Your array is:');
     write('[ ');
     for i:=1 to n do write(m[i],' ');
     write(']');
     sorting(s,m);
     writeln;
     writeln('Now your array is:');
     write('[ ');
     for i:=1 to n do write(s[i],' ');
     write(']');
     readkey;
end.
2) Эта программа должна бы заменять маленькие латинские буквы на большие , вот только при считывании символов у меня почему то при нажатии 1 кнопки сразу считывает по 3 символа , почему - не пойму , я ведь не первый раз организовываю цикл где задаются элементы массива .
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
program proga272;
uses crt;
const
n=10;
var
m:array[1..n] of char;
i:integer;
procedure up(m:array of char);
Begin
    for i:=1 to high(m) do if (ord(m[i])>97) and (ord(m[i])<122) then
    Begin
        m[i]:=chr(ord(m[i])-32);
    end;
end;
Begin
     for i:=1 to n do
     Begin
         writeln('Enter m[',i,']');
         read(m[i]);
     end;
     up(m);
     writeln;
     writeln('Now array is :');
     write('[ ');
     for i:=1 to n do write(m[i]);
     write(']');
end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.12.2009, 18:31
Ответы с готовыми решениями:

Нужно найти и исправить ошибки в программе по выводу дружественных чисел
Эта программа должна выводить дружественные числа в заданном интервале(в данном случае до 100000),но я криворукий, так что она не работает....

Нужно найти ошибки
исправить ошибки на будущее - текстовые задания и код выкладывайте в виде текста. Таковы правила форума

Нужно найти ошибки
всё задание на фото

9
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.12.2009, 18:41
1.
Pascal
1
 for i:=0 to high(m)
Добавлено через 1 минуту
Ну и во второй тоже.
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
11.12.2009, 18:51  [ТС]
[QUOTE=Puporev;409375]1.
Pascal
1
 for i:=0 to high(m)
В первой ситуации помогло , но обьясните пожалуйста почему там нужно 0 назначать , а не единицу , мне ведь элементы то сравнивать нужно начиная с первого .

Добавлено через 1 минуту
Во второй кстати нет , возможно и там придёться назначать от 0 , но я не могу до этого добраться толком так как после ввода одного символа паскаль думает что я уже 3 их ввёл и изменение возле i единицы на ноль на это не влияет .
0
 Аватар для Acid Ulcer
1 / 1 / 0
Регистрация: 07.10.2009
Сообщений: 44
11.12.2009, 19:07
потому что high прибавляет 1 и поэтому начинается цикл со второго элемента
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
11.12.2009, 19:13  [ТС]
Цитата Сообщение от Acid Ulcer Посмотреть сообщение
потому что high прибавляет 1 и поэтому начинается цикл со второго элемента
я почему то считал что high просто для обозначения чтобы не указывать конкретную границу , ну да спасибо что подсказали , но это для 1 примера работает .А почему во втором примере происходит чтение сразу нескольких символов я так и не понял то .

Добавлено через 5 минут
Вот ещё намбер фри так сказать :
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
program proga274;
uses crt;
const
n=12;
var
m:array[1..12] of integer;
i:integer;
res4,resn:integer;
procedure chetnie(var r:integer;m:array of integer);
Begin
     r:=0;
     for i:=0 to high(m) do if m[i] mod 2 =0 then r:=r+m[i];
end;
procedure ne4etnie(var r:integer;m:array of integer);
Begin
     for i:=0 to high(m) do if m[i] mod 2 <>0 then r:=r+m[i];
end;
Begin
     clrscr;
     randomize;
     for i:=1 to n do m[i]:=random(20)-10;
     writeln('Your array is : ');
     write('[ ');
     for i:=1 to n do write(m[i],' ');
     write(']');
     chetnie(res4,m);
     ne4etnie(resn,m);
     writeln;
     writeln('Summa 4etnih: ',res4,' Summa ne 4etnih: ',resn);
     readkey;
end.
Эта программа должна считать сумму чётных и не чётных чисел массива , считает она НЕ ВЕРНО .В чём подвох то ?
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.12.2009, 19:13
По второй.
Pascal
1
1.for i:=0 to high(m) do
Pascal
1
2
3
4
5
2.for i:=1 to n do
     Begin
         writeln('Enter m[',i,']');
         readln(m[i]);
     end;
1
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
11.12.2009, 19:23  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
for i:=1 to n do
Begin
writeln('Enter m[',i,']');
readln(m[i]);
end;
Вставка даного кода помогла , вот только что вы изменили у меня же вроде такие же строки были , ну по крайней мере я изменений не заметил .
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
11.12.2009, 19:24
Gepar, Я заменил read на readln. Почитайте про отличия этих процедур.
0
 Аватар для Acid Ulcer
1 / 1 / 0
Регистрация: 07.10.2009
Сообщений: 44
11.12.2009, 19:37
по третьей возьми в операторные скобки "if" и замени r на res4,resn соответственно

Добавлено через 2 минуты
и обнулить
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
11.12.2009, 22:56  [ТС]
Цитата Сообщение от Puporev Посмотреть сообщение
Gepar, Я заменил read на readln. Почитайте про отличия этих процедур.
Незаметил сразу , спасибо за подсказку .
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.12.2009, 22:56
Помогаю со студенческими работами здесь

Здесь нужно найти ошибки
Здесь нужно найти ошибки чтобы прога выводила макс элемент и номер!ниже исправленная прога!там добавил кое что!вопрос вот в чем...

Нужно найти ошибки в программе
Не высчитывает факториал uses crt; var a,c,n:longint; b:real; atb:char; function fakt(n:integer):integer; var i,f:integer; ...

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

Нужно найти ошибки
Выдает вот такие ошибки в коде: Prg_1_2.pas(17,18) Error: Illegal expression Prg_1_2.pas(17,8) Error: Incompatible types: got...

Мне нужно всего лишь найти синтаксические ошибки, второй день ломаю голову, в условии есть ошибки
Мне нужно всего лишь найти синтаксические ошибки, второй день ломаю голову, в условии есть ошибки. А в каком именно условии не знаю:( ...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru