11.05.2010, 20:50 | #1 (permalink) |
Новичок
Регистрация: 06.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Не понимаю Паскаль, покажите пожалуйста ещё раз как решать.
2.Дан целочисленный массив размера N, 2<N<100. Размер массива и его элементы вводятся с клавиатуры. Найти количество элементов массива, которые без остатка делятся на 3. Результат вывести на экран. |
11.05.2010, 20:50 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ранее созданных обсуждения помогут раскрыть глаза на решение проблемы Помогите пожалуйста, не понимаю С++ Помогите, пожалуйста, решить задачу. Паскаль Советы как решать тесты |
11.05.2010, 22:04 | #2 (permalink) |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
Прям так уж не понимаете? Если вы не понимаете Паскаль, то вы не понимаете программирование. На кого вы учитесь, позвольте поинтересоваться?
Сначала составляете алгоритм, то есть представляете, каким образом данные будут вводиться, обрабатываться и выводиться (второе самое сложное). Можете записать, но с опытом необходимость в этом отпадает. Обдумайте все, и приступайте к реализации. Мы готовы помочь вам на любом этапе, но писать готовые программы такой легкости - это медвежья услуга. Вторая задача очень простая. Вот вам пример словесного алгоритма: 1. Вводим размер массива; 2. Вводим сам массив; 3. Поэлементно проверяем остаток от деления каждого элемента на 3; 4. Если остаток равен 0, то выводим элемент. Пробуйте, у вас получится. С любыми вопросами - милости просим |
11.05.2010, 22:56 | #3 (permalink) | |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Цитата:
Код:
VAR i:INTEGER; S:STRING; BEGIN WriteLn('Enter the string:'); ReadLn(S); For i:=1 to Length(S) do If (Ord(S[i])<65) or (Ord(S[i])>90) then Write (S[i]); WriteLn; ReadLn; END. |
|
11.05.2010, 23:34 | #5 (permalink) |
Новичок
Регистрация: 06.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Я учюсь совсем по другой специальности!!!!Просто хочу научится задачи на паскале решать, но пока я плохо понимаю!!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
11.05.2010, 23:40 | #6 (permalink) |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
Артем, чтд.. Машуня, что бы научиться, надо пробовать. Не понимаете - спрашивайте, что не понимаете. Все не понимать невозможно, но если так, то берите учебник, и начинайте вдумчиво читать с самого начала
|
11.05.2010, 23:54 | #8 (permalink) |
Новичок
Регистрация: 06.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
С клавиатуры вводится строка длиной N, 2<N<100. Удалить в строке все латинские прописные символы. Результат вывести на экран.
Вот в задаче я не понимаю, как записать вот это предложение(Удалить в строке все латинские прописные символы.) А в решённой задаче откуда берутся вот эти числа( If (Ord(S[i])<65) or (Ord(S[i])>90) then Write (S[i])) |
12.05.2010, 00:13 | #10 (permalink) |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
Артем, что и требовалось доказать.
Удалить латинские прописные символы - это значит удалить заглавные буквы английского (латинского) алфавита. У каждого символа, введенного с клавиатуры, есть свой порядковый номер по таблице кодов ASCII. Например, символы переноса строки и возврат катерки (клавиша Enter) - #10 и #13; у пробела - #32 (если я ничего не путаю). В языке паскаль есть операторы, позволяющие получать символ по номеру в кодовой таблице и номер по символу - chr(n) и ord(c), где н-число, а с - символ. То есть, если мы напишем а:=chr(32), то а станет равно пробелу, или a:=ord(' '), и в а запишется 32. Владимир решил эту задачу с использованием этой самой кодовой таблицы. Все заглавные символы латинского алфавита (то, что нам нужно удалить), находятся в диапазоне от #65 до #90. Суть оператора такова: если символ не лежит в диапазоне [65..90], то он не является заглавным латинским символом, следовательно, его не надо удалять из строки (надо вывести на экран). Надеюсь, все понятно и подробно изложил? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|