![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.11.2017
Сообщений: 11
|
![]()
Добрый день!
Получила задание написать программу для шифровки текста (шифр Цезаря). С этим вроде бы проблем не возникло, но при запуске программы к буквам нижнего регистра почему-то добавляется еще какой-то символ. Код Код:
~/workspace/pset2/ $ ./caesar 0 ABC abc ABC aGbHcI Откуда взялись дополнительные символы??? Где я ошиблась? П.С. Не по теме: что значит сообщение Ошибка в программном коде: 'ascii' codec can't encode characters in position 109-116: ordinal not in range(128) |
![]() |
![]() |
![]() |
#2 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
Одни if и ни одного else. Для маленьких букв выполняются оба куска - и для больших, и для маленьких
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 24.11.2017
Сообщений: 11
|
![]()
Спасибо за ответ!
else нет, т.к. если условие не выполняется, то цикл завершается и программа переходит к следующему (во всяком случае, так объясняют на лекции) Разделила проверку условия: if (isalpha (s[i]) ) и потом внутри две проверки отдельно if (islower (s[i])) и if (isupper(s[i])) ООО чудо! Заработало! Но теперь при проверке выдает сообщение (проверяется не человеком, а автоматически компом): Результат теста - неверно. ![]() Ошибки: ![]() expected prompt for input, found none ![]() expected prompt for input, found none ![]() expected prompt for input, found none ![]() expected prompt for input, found none ![]() expected prompt for input, found none Что значит "ожидаемое приглашение для ввода, не найдено ни одного"? Я в отчаянии... |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,833
|
![]()
Только то, что написано. Очевидно тестирующая система ждет какой-то строки - приглашения для ввода, типа >. Но не находит и тст проваливается.
Кстати, кто вам сказал, что у мейна в параметрах стринг? |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 24.11.2017
Сообщений: 11
|
![]()
Может я неправильно поняла задание?
Цитата: "ваша цель состоит в том, чтобы написать в caesar.c программу, которая шифрует сообщение с помощью шифра Цезаря. Программа должна принимать один аргумент командной строки: неотрицательное целое число. Если вашу программу запускают без каких-либо данных командной строки, или более чем одним аргументом, должно появляться сообщение об ошибке и возвращаться значение 1 (что в данном случае означает ошибку) как указано ниже: return 1; В противном случае, программа должна перейти к запросу текста, который нужно зашифровать; символы, которые не являются буквами алфавита, будут выведены без изменений. После вывода зашифрованного текста программа должна завершиться, main должен вернуть 0 следующим образом: return 0. " Так как мы автоматизируем для вас некоторые тесты, программа должна вести себя как показано ниже. Считаем, что подчеркнутый текст это то, что набрал пользователь. ~/Dropbox/pset2: ./caesar 13 Be sure to drink your Ovaltine! Or fher gb qevax lbhe Binygvar! у меня все именно так и выводится. По поводу стринг - так задано изначально ("так как эта программа должна стартовать с того, что в командной строке она должна принять значение k, в main надо прописать: int main (int argc, string argv [])") |
![]() |
![]() |
![]() |
#6 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
Действительно, непонятно, какой промпт ожидается.
Судя по примеру, может быть, перевод строки? |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 24.11.2017
Сообщений: 11
|
![]()
Что значит "перевод строки"? это \n ? так вроде бы ж есть... или еще где-то нужно?
Извините за такие вопросы, просто тяжело быть "чайником" ![]() И, если не сложно, объясните что может значить сообщение (не из этого задания): "Ошибка в программном коде: 'ascii' codec can't encode characters in position 109-116: ordinal not in range(128)" |
![]() |
![]() |
![]() |
#8 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
Что именно не так с Вашим заданием - непонятно. Если не у кого проконсультироваться, можно толко попытаться подобрать. Попробуйте таки вывести хоть какой-то текст перед вводом строки. Возможны варианты: просто перевод строки, какой-то текст с переводом строки (например, как предлагали, ">"), текст без перевода строки.
Эта ошибка означает, что где-то в позициях 109-116 ожидаются символы чисто ascii, а на самом деле стоят символы с кодом больше 127, скорее всего, русские буквы |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 24.11.2017
Сообщений: 11
|
![]()
Я его победила! Спасибо Вам за помощь.
Подбирала пол дня. В итоге тест прошел, когда я вывела текст перед вводом пользователя и вывела текст перед ответом! Вот так получилось: ~/workspace/pset2/ $ ./caesar 0 plaintext: abc ABC! ciphertext: abc ABC! ~/workspace/pset2/ $ ./caesar 13 plaintext: abc ABC! ciphertext: nop NOP! П.С. по поводу ascii: это мне нужно создать новую тему , чтоб выяснить ошибку ? (суть задачи из этой же темы: запросить ФИО пользователя и вывести инициалы большими буквами) |
![]() |
![]() |
![]() |
#10 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
![]()
Не знаю..
Напишите подробнее, где именно ошибка. Может, комментарии русскими буквами? Иногда и на это бывает ошибка |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Шифр Цезаря | Ти6ка | C# (си шарп) | 7 | 21.02.2017 22:19 |
[C++]: шифр Гронсфельда. Помогите найти ошибку в коде | krasy | Помощь студентам | 1 | 02.10.2016 00:37 |
Шифр цезаря | noutiluss | C# (си шарп) | 0 | 17.03.2016 17:35 |
Шифр Цезаря.(Зашиф-ка,расшиф-ка,взлом...Вообщем полный набор.Пожалуйста помогите) | Александр96 | Помощь студентам | 0 | 03.12.2013 18:36 |
Шифр Цезаря | Goracio | Помощь студентам | 1 | 19.04.2010 14:53 |