|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.10.2012, 15:52 | #1 |
Регистрация: 08.10.2012
Сообщений: 7
|
Задача на подпрограммы
Задача: нужно после ввода символа, чтоб определяла какому алфавиту принадлежит: русскому или английскому. Написала код. Посмотрите пожалуйста и укажите ошибки:
# include <conio.h> # include <stdio.h> const int n= 26; { int byk(char mas[n], char b, int c); for (int i=0; i<n; i++){ if (mas[i]!=b) break; else c++} return c; } void main() { char a; char mas[]={'a','b','c','d','e','f','g','h',' i','j','k','l','m','n','o','p','q', 'r','s','t','u','v','w','x','y','z' }; int i=0, c=0; printf("VVedite a=",a); scanf("%c",a); byk (mas[i],a,i,c); if (c==1) printf("Latinsciy"); else printf("Русский"); getch(); } |
08.10.2012, 16:15 | #2 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
а если я введу "D", то мне естественно напишет, что это русский шрифт, а я вводил на английском... как быть? не лучше ли работать с кодами символов, а не проверять на соответствие массиву?
Правильно поставленная задача - три четверти решения.
|
08.10.2012, 16:20 | #3 |
Регистрация: 08.10.2012
Сообщений: 7
|
формулировка задания полная: "Напишите подпрограмму определения принадлежности прописной буквы одному из алфавитов: русский, английский.
|
08.10.2012, 16:29 | #4 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
я про другое: как вы различаете заглавные буквы и строчные? если что, "D" <> "d". Тут уже будет ошибка.
и вот вам немножко информации для ознакомления: http://ru.wikipedia.org/wiki/ASCII
Правильно поставленная задача - три четверти решения.
|
08.10.2012, 16:44 | #5 |
Регистрация: 08.10.2012
Сообщений: 7
|
А я их и не различила... и к сожалению не знаю, как обращение делать к ASCII-кодам. поэтому сказали достаточно сделать через прописные, без учета регистра
|
08.10.2012, 17:01 | #6 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
Код:
з.ы. ногами не пинайте - C почти не знаю
Правильно поставленная задача - три четверти решения.
|
08.10.2012, 17:13 | #7 |
Регистрация: 08.10.2012
Сообщений: 7
|
если честно,я не совсем понимаю... только вступаю в ряды программирования на си. зачем 7? что вообще это значит?
|
08.10.2012, 18:15 | #8 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Оформляйте код правильно, заключая его в теги: <code> </code> (вместо угловых - квадратные скобки). Или выделите код и нажмите кнопку решётки в редакторе форума.
Код:
Вот для примера вам написал программку, которая считает сумму элементов массива. Чтобы вы видели работающий вариант: Код:
Последний раз редактировалось 8Observer8; 08.10.2012 в 18:22. |
08.10.2012, 19:02 | #9 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Цитата:
Код:
Теперь объясняю: Как видите код буквы 'b' - это 62h или 0110 0010 И как видите, седьмой бит равен нулю (если начинать счёт с нуля) Теперь посмотрим на букву 'б' - это E1h или 1110 0001 Как видите, седьмой бит равен единице В этом и отличие русских букв от латинских. У латинский букв седьмой бит равен нулю, а у русских единице. Оператор >> сдвигает число на требуемое количество бит вправо. Покажу на примере: Код:
P.S. Обязательно пишите unsigned char, чтобы избежать проблемы расширения знака. P.S.S. Тип bool компилятором, который я использую, не поддерживается. Последний раз редактировалось 8Observer8; 08.10.2012 в 19:16. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
задача на подпрограммы и системы счисления | ПаЗитиФкА | Помощь студентам | 6 | 28.11.2011 23:25 |
задача на подпрограммы (функции) | mashat99 | Помощь студентам | 2 | 29.05.2011 19:45 |
Pascal-задача на файлы, подпрограммы | Tasha_no | Помощь студентам | 4 | 08.07.2010 23:03 |
Подпрограммы-процедуры, подпрограммы-функции в Pascal | rishikesh | Помощь студентам | 19 | 18.05.2010 23:05 |