![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
kate17 |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 1.10.2010 Город: Самара Вы: студент ![]() |
Можете помочь решить задачу в паскале на тему циклические алгоритмы?
|
![]() ![]() |
граф Монте-Кристо |
![]()
Сообщение
#2
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое ![]() |
Помочь можем. Решать будете сами.
|
kate17 |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 1.10.2010 Город: Самара Вы: студент ![]() |
Числа 1,10,100,1000..выписаны подряд без пробелов между ними.Ввести N (1<=N<=1000000) и определить,какая цифра стоит на N-ом месте.
Я думала записать саму эту последовательность как k1:=K*10...K2=K1*10...., где k:=1.Но не знаю как ввести еще один счетчик, чтобы считалось само место числа, потому что в любом случае ответ будет либо 1,либо 0. Или я вообще неправильно рассуждаю?( |
Vahappaday |
![]()
Сообщение
#4
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
неправильно) записывать последовательность не надо...
точнее записать-то можно, но это крайне неэкономично. Я бы сделал так. Есть текущая длина числа, обзовём её буквой C, изначальна равна 1 (для 1 равна одному, для 10 - двум и т.д.). Есть N - позиция числа. Каждую итерацию уменьшаем N на C, и увеличиваем C на единицу. Итерации проводим пока N>C. Как только N <= C смотрим значение N. Если N=1, то мы попали в первую цифру какого-то числа, то бишь, в единичку. Если не равно 1, то попали в нолик. Если что непонятно, прошу обращаться) |
kate17 |
![]()
Сообщение
#5
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 1.10.2010 Город: Самара Вы: студент ![]() |
А как представить уменьшение итерации С на N?
|
Vahappaday |
![]()
Сообщение
#6
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
N:=N-C;
|
kate17 |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 1.10.2010 Город: Самара Вы: студент ![]() |
Получилось) Но, если проверить, то зачастую программа выдает 0, когда должна быть единица. Может я неправильно записала?
Var N,C:integer; begin write('Введите место числа N='); read(N); c:=1; While N<=C do N:=N-C; c:=c+1; If N<=C then begin read(N) end; If N=1 then begin write(1)end; If N<>1 then begin write(0)end; end. (IMG:style_emoticons/default/sad.gif) |
Vahappaday |
![]()
Сообщение
#8
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
хм... чего-то ерунда какая-то....
1. Во-первых, Код While N>C 2. Во-вторых, у меня вопрос к паскалянтам, после do вся строчка выполняется каждую итерацию или только первое выражение? Я про строку Код While N<=C do N:=N-C; c:=c+1; Не стоит ли её заменить на Код While N<=C do begin N:=N-C; c:=c+1; end; Оговорюсь, паскаля не знаю вообще, так что по этому пункту могу ошибаться. 3. В-третьих, строка Код If N<=C then begin read(N) end; вообще не понятна. |
граф Монте-Кристо |
![]()
Сообщение
#9
|
Доцент ![]() ![]() ![]() ![]() ![]() ![]() Группа: Преподаватели Сообщений: 3 840 Регистрация: 27.9.2007 Из: Старый Оскол Город: Москва Учебное заведение: МФТИ/МАИ Вы: другое ![]() |
Насколько я помню, после do, если нет begin'а, выполняется только первая строчка. Так что заменить стоит(IMG:style_emoticons/default/smile.gif)
|
kate17 |
![]()
Сообщение
#10
|
Новичок ![]() Группа: Продвинутые Сообщений: 7 Регистрация: 1.10.2010 Город: Самара Вы: студент ![]() |
эх...третья строка вообще не нужна. После do выполняется вся строка.
Ура) все верно) Спасибо большое вам. |
Vahappaday |
![]()
Сообщение
#11
|
Аспирант ![]() ![]() ![]() Группа: Продвинутые Сообщений: 334 Регистрация: 26.4.2009 Город: Липецк Учебное заведение: ЛГТУ Вы: студент ![]() |
На здоровьице))
|
![]() ![]() |
![]() |
Текстовая версия | Сейчас: 25.5.2025, 19:51 |
Зеркало сайта Решебник.Ру - reshebnik.org.ru