Помощь - Поиск - Пользователи - Календарь
Полная версия: упорно выскакивает ошибка!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
-katrin-
здравствуйте,
написала прогу на Borland Pascal (решение маленькой задачки)

проблема1:
упорно не отображаются русские буквы (меняла настройку в реестре, установила keyrus, создала bat-файл для запуска кейруса и потом паскаля - не помогает!!!)

проблема2:
после написания и успешной компиляции при запуске выдает сообщение об ошибке 105 (я так поняла - для writeln, пч другого ничего нет подозрительного)
для файла, папки и диска НЕ стоит галочка "только чтение"!
как тут быть? что исправить?
помогите, пожалуйста, по возможности решить обе проблемы, буду очень благодарна
volvo
-katrin-,
ошибка в 17 строке...
Здесь что, по-Вашему, телепаты? Код в студию!
Кстати, Run-Time Error #105 это "Файл не открыт для вывода". Rewrite присутствует?


Насчет первого вопроса - к тому, что есть в FAQ: Сделайте мне русский в Паскале добавить нечего...
-katrin-
задача:
для целого 1<=k<=99 напечатать фразу: "Мне К лет " (с возможными изменениями последнего слова).

текст
Код

program myAge;
var
    k: Integer;
    s,st: string;
begin
    write('Vvedite vash vozrast:');
    read(k);
    while (k<1) or (k>99) do
    begin
 writeln('Oshibka! Nuzhno vvesti chislo ot 1 do 99!');
 writeln('Vvedite vash vozrast:');
 read(k);
    end;

    case k of
 1 or 21 or 31 or 41 or 51 or 61 or 71 or 81 or 91: s:=' god';
 2 or 3 or 4 or 22 or 23 or 24 or 32 or 33 or 34 or 42 or 43 or 44 or 52 or 53 or 54 or 62 or 63 or 64 or 72 or 73 or 74 or 82
               or 83 or 84 or 92 or 93 or 94: s:=' goda';
    else
 s:=' let';
    end;
    Str(k, st);
       st:='Mne ' + st + s;
    writeln(st);
end.
volvo
-katrin-, во-первых, Case оформлен неверно. Вот правильный вариант:
case k of
 1, 21, 31, 41, 51, 61, 71, 81, 91:
   s:=' god';

 2..4,
 22..24, 32..34, 42..44,
 52..54, 62..64, 72..74,
 82..84, 92..94:
   s:=' goda';

 else
   s:=' let';
end;
Ну а во вторых, этот код компилируется и работает как под BP так и под Turbo Pascal... Что-то непонятное у Вас творится...

P.S. А зачем вот это: Str(k, st); ?
Можно же просто вывести:
writeln('Mne ', k, s);
-katrin-
volvo

спасибо! но все равно ошибку выдает unsure.gif
volvo
А поточнее? На каком именно Write выдает ошибку? На самом первом? Или на каком-то из последующих? Возраст ввести дает?
Guest
Runtime error 105 at 0001:0086
volvo
Это мне НИЧЕГО не скажет... Это на Вашем компьютере есть такой адрес. У меня его нет. Локализуйте ошибку. Лучше всего - после КАЖДОЙ строки поставить Writeln('stroka #1'), и т.д. и посмотреть СКОЛЬКО он выводит строк. Адреса - понятие ОЧЕНЬ ненадежное...
-katrin-
он ничего не пишет, после запуска сразу ошибку выдает
Guest
Может библиотеку надо подключить, просто в вашем коде я этого не видел
volvo
Интересно какую? Все функции используемые в программе входят в состав System.tpu, который подключается автоматически. Да, кроме этого если бы не хватало библиотеки, программа не прошла бы компиляцию, а она ее проходит.

Единственное, что приходит на ум сделать - это попробовать использовать:
Program myAge(input, output);
...
writeln(output, 'что-то');
readln(input, 'что-то еще');
, то есть воспользоваться стандартными каналами ввода-вывода. Интересно, сработает ли это?
-katrin-
все та же runtime error 105
видимо паскаль косо поставился ...
volvo
Попробуй установить Turbo Pascal, с ним не должно быть проблем... Программа - точно рабочая, я ее уже в каких компиляторах только не гонял...
-katrin-
volvo
спасибо за помощь! :flowers:
попробую по-новой установить, если не поможет, турбопаскаль поищу
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.