Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Задачка на множества, Паскаль (http://www.tehnari.ru/f41/t96153/)

pashasnuff 05.05.2014 20:36

Исправил на стринг, да АБЦ, врое работает, но вот ошибку выдает

Когда ввожу: рррр, аааа
Вот эту ошибку выдает.
Ошибка времени выполнения: Индекс находился вне границ массива.

pashasnuff 05.05.2014 20:38

Когда вводишь аааа, рррр
Выдает такую ошибку
Ошибка времени выполнения: Индекс находился вне границ массива.

Vladimir_S 05.05.2014 20:40

Цитата:

Сообщение от pashasnuff (Сообщение 1029970)
Когда ввожу: рррр, аааа Вот эту ошибку выдает. Ошибка времени выполнения: Индекс находился вне границ массива.

А, понятно. Исправьте диапазон массива Codes так, чтобы он начинался не с 1, а с 0 (просто замените 1 на 0).
P.S. Ну зачем же тестировать на таких примерах, где совпадений нет вовсе? Я как-то считал, что хоть одно, да найдется. :)
Да, и еще N задайте типом Integer.

pashasnuff 05.05.2014 20:46

Все равно, ошибка вылазит_(

Vladimir_S 05.05.2014 20:53

Всё, разобрался.
Строку
i,j,k,N:Byte;
меняем на
i,j,k,N:Integer;

pashasnuff 05.05.2014 20:59

Владимир, спасибо огромное а нельзя ли упростить текст программы?
конструкции repeat - until нельзя ли чем нибудь заменить? просто буквально только что начали Паскаль изучать, еще такого не проходили

Vladimir_S 05.05.2014 21:12

Цитата:

Сообщение от pashasnuff (Сообщение 1029980)
Владимир, спасибо огромное а нельзя ли упростить текст программы?
конструкции repeat - until нельзя ли чем нибудь заменить? просто буквально только что начали Паскаль изучать, еще такого не проходили

Ну нет, вот это уж пожалуйста без меня. Скажите преподавателю, что настолько увлеклись, что цикл с постусловием освоили самостоятельно. :D. Правда, боюсь, не поверит...

pashasnuff 05.05.2014 21:21

А ну окей)
Кстати вопрос, я хочу сделать чтоб если ничего не ввел то он говорит что строка пустая и обратно идет на ввод строки, пишу я
if length(s)=0 then
writeln('пусто');
ставлю end в конце а он говорит что вместо end ожидалось ;
не разберусь в чем проблема?

poiu 05.05.2014 23:57

repeat
clrscr;
Writeln('Enter the string:');
readln(s);
if length(s) = 0 then writeln('Empty string!');
until length(s) <> 0;

Vladimir_S 06.05.2014 09:33

Цитата:

Сообщение от poiu (Сообщение 1030078)
clrscr;

Только уж если используется эта команда, то не забыть в начале программы поставить "uses CRT;" (без кавычек, естественно). Во всяком случае, в нормальном Паскале так, а как в этом... ладно, не буду.


Часовой пояс GMT +4, время: 13:02.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.