Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 11.05.2010, 20:50   #1 (permalink)
Машуня
Новичок
 
Регистрация: 06.05.2010
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Не понимаю Паскаль, покажите пожалуйста ещё раз как решать.

1.С клавиатуры вводится строка длиной N, 2<N<100. Удалить в строке все латинские прописные символы. Результат вывести на экран.
2.Дан целочисленный массив размера N, 2<N<100. Размер массива и его элементы вводятся с клавиатуры. Найти количество элементов массива, которые без остатка делятся на 3. Результат вывести на экран.
Машуня вне форума   Ответить с цитированием

Старый 11.05.2010, 20:50
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Ранее созданных обсуждения помогут раскрыть глаза на решение проблемы

Помогите пожалуйста, не понимаю С++
Помогите, пожалуйста, решить задачу. Паскаль
Советы как решать тесты

Старый 11.05.2010, 22:04   #2 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,937
Записей в дневнике: 10
Сказал(а) спасибо: 139
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Прям так уж не понимаете? Если вы не понимаете Паскаль, то вы не понимаете программирование. На кого вы учитесь, позвольте поинтересоваться?
Сначала составляете алгоритм, то есть представляете, каким образом данные будут вводиться, обрабатываться и выводиться (второе самое сложное). Можете записать, но с опытом необходимость в этом отпадает. Обдумайте все, и приступайте к реализации. Мы готовы помочь вам на любом этапе, но писать готовые программы такой легкости - это медвежья услуга.

Вторая задача очень простая. Вот вам пример словесного алгоритма:
1. Вводим размер массива;
2. Вводим сам массив;
3. Поэлементно проверяем остаток от деления каждого элемента на 3;
4. Если остаток равен 0, то выводим элемент.
Пробуйте, у вас получится. С любыми вопросами - милости просим
MrSTEP вне форума   Ответить с цитированием
Старый 11.05.2010, 22:56   #3 (permalink)
Vladimir_S
Специалист
 
Аватар для Vladimir_S
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 26,973
Сказал(а) спасибо: 322
Поблагодарили 542 раз(а) в 183 сообщениях
Репутация: 102185
По умолчанию

Цитата:
Сообщение от Машуня Посмотреть сообщение
1.С клавиатуры вводится строка длиной N, 2<N<100. Удалить в строке все латинские прописные символы. Результат вывести на экран.
Беда в том, что Вы и не пытаетесь ничего понять! И зачем тогда учиться? Ведь не далее, как 5 дней назад я выложил Вам решение аналогичной задачи: Не знаю как решить задачи на паскале, помогите пожалуйста! , но Вы, очевидно, не пожелали даже разобраться в этой программе. Ну хорошо, ну дам я Вам решение этой:
Код:
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.
А дальше что? Завтра Вам дадут задачу "заменить вопросительные знаки в строке восклицательными" и Вы опять прибежите сюда? Ну-ну... Грустно это всё...
__________________
With Mozilla Firefox - straight to communism!
Vladimir_S вне форума   Ответить с цитированием
Старый 11.05.2010, 23:32   #4 (permalink)
Артём
votum separatum
 
Аватар для Артём
 
Регистрация: 05.05.2008
Сообщений: 14,603
Записей в дневнике: 52
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 18619
По умолчанию

Володь, чувствую ты от авторши даже элементарного "спасибо" не дождесси.
Артём вне форума   Ответить с цитированием
Старый 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)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,937
Записей в дневнике: 10
Сказал(а) спасибо: 139
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Артем, чтд.. Машуня, что бы научиться, надо пробовать. Не понимаете - спрашивайте, что не понимаете. Все не понимать невозможно, но если так, то берите учебник, и начинайте вдумчиво читать с самого начала
MrSTEP вне форума   Ответить с цитированием
Старый 11.05.2010, 23:44   #7 (permalink)
Артём
votum separatum
 
Аватар для Артём
 
Регистрация: 05.05.2008
Сообщений: 14,603
Записей в дневнике: 52
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 18619
По умолчанию

Цитата:
Артем, чтд..
что это значит?
Артём вне форума   Ответить с цитированием
Старый 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:05   #9 (permalink)
Eli
TEHNARI.RU
 
Аватар для Eli
 
Регистрация: 31.03.2008
Адрес: Израиль
Сообщений: 18,406
Записей в дневнике: 7
Сказал(а) спасибо: 10
Поблагодарили 1 раз в 1 сообщении
Репутация: 14031
По умолчанию

Цитата:
Артем, чтд..
Цитата:
Артем, что делать..
Вероятно
Eli вне форума   Ответить с цитированием
Старый 12.05.2010, 00:13   #10 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,937
Записей в дневнике: 10
Сказал(а) спасибо: 139
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
По умолчанию

Артем, что и требовалось доказать.
Удалить латинские прописные символы - это значит удалить заглавные буквы английского (латинского) алфавита.
У каждого символа, введенного с клавиатуры, есть свой порядковый номер по таблице кодов ASCII. Например, символы переноса строки и возврат катерки (клавиша Enter) - #10 и #13; у пробела - #32 (если я ничего не путаю).
В языке паскаль есть операторы, позволяющие получать символ по номеру в кодовой таблице и номер по символу - chr(n) и ord(c), где н-число, а с - символ. То есть, если мы напишем а:=chr(32), то а станет равно пробелу, или a:=ord(' '), и в а запишется 32.
Владимир решил эту задачу с использованием этой самой кодовой таблицы. Все заглавные символы латинского алфавита (то, что нам нужно удалить), находятся в диапазоне от #65 до #90. Суть оператора такова:
если символ не лежит в диапазоне [65..90], то он не является заглавным латинским символом, следовательно, его не надо удалять из строки (надо вывести на экран).
Надеюсь, все понятно и подробно изложил?
MrSTEP вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.