Как найти первое двузначное число в массиве через while ?
Вы открыли страницу вопроса Как найти первое двузначное число в массиве через while ?. Он относится к категории
Информатика. Уровень сложности вопроса – для учащихся 5 – 9 классов.
Удобный и простой интерфейс сайта поможет найти максимально исчерпывающие
ответы по интересующей теме. Чтобы получить наиболее развернутый ответ,
можно просмотреть другие, похожие вопросы в категории Информатика,
воспользовавшись поисковой системой, или ознакомиться с ответами других
пользователей. Для расширения границ поиска создайте новый вопрос, используя
ключевые слова. Введите его в строку, нажав кнопку вверху.
Перед каждым учителем информатики
стоит задача: “чему учить в информатике и как
учить”. В настоящее время появилось большое
количество литературы по программированию, где
предлагается определенный стандартный набор
задач по основным разделам. Я думаю, никто не
сомневается, что за основу обучения
программированию, следует взять методику, с
максимальным использованием компьютера на
занятиях, и при этом должен формироваться
определенный стиль мышления. Мне бы хотелось
остановиться на разделе решения задач по теме
“Целые числа”. Как показывает практика работы с
учащимися, ученик воспринимает целое число, как
единое целое, а не набор цифр, с которыми можно
совершать различные операции. На мой взгляд, имея
набор таких задач, можно раскрыть отдельные темы
программирования достаточно качественно.
Особенно это помогает при подготовке учащихся к
олимпиадам. Преимуществом такого подхода
является конструирование задач из минимального
количества инструкций, а также достаточно
простая “ручная” прокрутка программы, что
немаловажно для понимания задачи. В процессе
занятий необходимо достичь такого уровня их
понимания, чтобы работа программы учеником
воспринималась в динамике. Ни для кого не секрет,
что, имея по программе два недельных часа, нельзя
качественно обучить основам программирования,
чтобы студент-первокурсник не “ломал” голову
над задачами в институте, которые он как бы видел
в школе на уроках информатики. Я пропущу разделы,
предшествующие вводным урокам знакомства с
языком, а постараюсь раскрыть те разделы
тематического планирования в 9-10 классах, которые
дают, на мой взгляд, ощутимый результат в
качественном понимании материала учеником.
План занятий:
- обсуждение темы урока;
- разбор программ решения отдельных задач,
обязательная “ручная” прокрутка; - эксперименты с программой;
- выполнение самостоятельной работы.
1. Занятие по теме “Целый тип данных”.
Обсуждение темы. Существует пять
целых типов: Shortint, Integer, Longint, Byte, Word. Они отличаются
диапазоном значений, размером памяти, отводимой
для их представления.
Тип |
Диапазон значений |
Объем памяти |
Shortint |
-128… 127 |
1 байт, со знаком |
Integer |
-32768… 32767 |
2 байта, со знаком |
Longint |
-2147483648…2147483647 |
4 байта, со знаком |
Byte |
0…. 255 |
1 байт, без знака |
Word |
0… 65535 |
2 байта, без знака |
Операции с величинами целого типа:
сложение (+), вычитание (-), умножение (*), нахождение
целой части деления (Div), нахождение остатка от
деления (Mod), а также стандартные функции: Ord, Succ,
Pred. Так как с функциями Div и Mod ученик не
встречается на уроках математики, то есть
необходимость решить несколько упражнений на их
применение.
На первом этапе в 9 классе разбираем задачу:
Написать программу, определяющую цифры
трехзначного числа.
Program task_1;
Var a, One, Dec, Han: Integer;
Begin
Writeln (‘Введи число’);
Readln(a);
One:= a Mod 10;
Writeln (‘Единиц:’,One);
Han: = a div 100;
Writeln (‘Сотен:’,Han)
Dec := (a – Han * 100) div 10;
Writeln (‘Десятков:’, Dec);
Readln;
End.
Program task_2; {Изменить задачу для вывода
числа , с приписанной 1 слева. Например: 234 –> 1234}
Var a, One, Dec, Han, Rez: Integer;
Begin
Writeln (‘Введи число’);
Readln (a);
One: = a Mod 10;
Writeln (‘Единиц:’,One);
Han: = a div 100;
Writeln (‘Сотен:’,Han);
Dec: = (a – Han * 100) div 10;
Writeln (‘Десятков:’,Dec);
Rez: = 1 * 1000 + Han * 100 + Dec * 10 + One;
Writeln (‘Rez = ’, Rez);
Readln;
End.
Задачи для самостоятельного
решения.
- Изменить задачу для нахождения цифр
двузначного (четырехзначного) числа. - Определить сумму и произведение цифр числа
(двузначного, трехзначного, четырехзначного).
Определить число, образованное перестановкой
цифр десятков и единиц. - Определить число, полученное перестановкой
цифр десятков и единиц, цифр сотен и единиц. - Получить четырехзначное число, полученное из
двузначного, приписыванием цифры единицы, в
качестве цифры тысяч (например, из числа 321
необходимо получить число 1321).
2. Занятие по теме “Составной оператор
и оператор ветвления”.
Составной оператор записывается
следующим образом:
Полный условный оператор
If <условие>Then<оператор
1>Else<оператор 2>
If <условие> Then <оператор>
Разбор темы начинаем со стандартных
задач нахождения наибольшего из двух (трех)
данных чисел.
Самостоятельная работа.
Дано двузначное (трехзначное) число.
Написать программу определения:
- Является ли сумма его цифр двузначным числом;
- Больше ли числа M сумма его цифр, число M вводится
с клавиатуры; - Кратна ли 5 сумма его цифр;
- Что больше, цифра десятков или цифра единиц,
цифра сотен или цифра десятков (единиц); - Оканчивается ли число цифрой K,цифра K вводится с
клавиатуры; - Входит ли цифра 5 в данное число;
- Входят ли цифры 5,3,8 в данное число;
Задача. Дано трехзначное число.
Написать программу определения, является ли
число палиндромом (перевертышем), то есть числом,
десятичная запись которого читается слева
направо и справа налево.
Program task_1;
Var a, One, Dec, Han: Integer;
Begin
Writeln (‘Введи число’);
Readln (a);
One: = a Mod 10;
Han: = a div 100;
Dec: = (a – Han * 100) div 10;
If ((Han * 100 + Dec * 10 + One) = (One * 100 + Dec * 10 + Han) Then Writeln (‘Yes’)
else Writeln (‘No’);
Readln;
End.
3. Занятие по теме: “Оператор
повторения For”.
Инструкция используется для
организации циклов с фиксированным,
определяемым во время разработки программы,
числом повторений. Количество повторений цикла
определяется начальным и конечным значениями
переменной-счетчика. Переменная счетчик должна
быть целого типа. Оператор должен иметь одну
точку входа и одну точку выхода.
Задача. Найти все двузначные числа, в
которых есть цифра N и само число делится на N.
Program task_1;
Var n: Integer;a1, a2, i: Byte; Begin Writeln (‘Введи цифру’);
Readln (n);
For I: = 10 to 99 do begin
a1: = I mod 10;a2: = I div 10; If ((n = a1) or (n = a2)) and (I mod n = 0) then
Writeln (‘I = ‘, I); end; Readln End.
Задача. Определить количество
натуральных трехзначных чисел, сумма цифр
которых равна заданному числу.
Program task_2;
Var n, s, i: Integer; a1, a2, a3, k: Byte; Begin Writeln (‘Введи число’);
Readln (n);
s: = 0; k: = 0;
For I: = 100 to 999 do begin
a1: = I mod 10;a3: = I div 100; a2: = (i – a3 * 100) div 10;
If (a1 + a2 + a3 = n) Then begin Writeln (‘I = ‘, I); k: = k + 1; end;
end;
Writeln (‘количество цифр =’, k);
Readln
End.
Задача. Написать программу поиска
двузначных чисел, таких, что если к сумме цифр
этого числа прибавить квадрат этой суммы, то
получится это число.
Program task_3;
Var n,i:integer;
a1, a2: byte;
Begin
For I: = 10 to 99 do begin
a1: = I mod 10; a2: = I div 10; If (a1 + a2 + (a1 + a2)*(a1 + a2)) = I Then Writeln(‘I =
‘, I); end;
Readln End.
Задача. Квадрат трехзначного числа
оканчивается тремя цифрами, которые как раз
составляют это число. Написать программу поиска
таких чисел.
Program task_4;
Var n, i: Longint; a1, a2, a3: integer;
Begin
For I: = 100 to 999 do begin
a1: = (I * I) mod 10; a2: = (I * I) div 10 mod 10; a3: = (I * I) mod 1000 div 100;
If (a3 * 100 + a2 * 10 + a1) = I Then
Writeln (‘I = ‘, I, ’Квадрат числа =’, I * I); end; Readln End.
Задача. Найти сумму целых положительных
чисел из промежутка от А до В, кратных 4 (значения
А и В вводятся с клавиатуры).
Program task_5;
Var S: Integer; A, B, I: Integer;
Begin
Writeln (‘Введи промежутки А, В’);
Readln (A, B); S: = 0;
For I: = A to B do If (I mod 4 = 0) then begin s: = s + i; Writeln (‘I = ‘, I,’s =’, s);
end;
Readln
End.
Задача. В трехзначном числе зачеркнули
первую цифру слева, когда полученное двухзначное
число умножили на 7, то получили данное число.
Program task_6;
Var i, a1: Integer; Begin
For I: = 100 to 999 do begin a1: = I mod 100;
If (a1 * 7 = I) Then Writeln (‘I = ‘, i,’ a1 * 7 = ‘, a1 * 7);
end;
Readln End.
Задача. Среди четырехзначных чисел
подсчитайте количество чисел, у которых все
цифры не равны.
Program task_7;
Var m: Integer; a1, a2, a3, a4, i, k: Integer; Begin
For I: = 1000 to 9999 do begin
m: = I;
a4: = m mod 10; m: = m div 10; a3: = m mod 10; m: = m div 10;
a2: = m mod 10; a1: = m div 10;
If (a1<>a2) and(a1<>a3) and (a1<>a4) and (a2<>a3)
and(a2<>a4) and (a3<>a4)
Then begin k: = k + 1; write (‘I = ‘,I); end; end;
Writeln (‘k = ‘, k);
Readln
End.
4. Занятие по теме оператор While.
Решая предыдущие задачи, логично возникает
вопрос, как определить количество цифр для
любого числа, в том числе для длинного? Данная
задача хорошо решается с использованием
оператора цикла с предусловием While<условие>
do<инструкция>. Такой цикл многократно
выполняет одни и те же действия при истинности
условия, которое изменяется обычно внутри цикла.
Истинность условия обычно проверяется перед
выполнением инструкций. Таким образом, если бы
условие сразу оказалось ложным, то инструкция не
будет выполняться не разу. Если в цикле
необходимо выполнить несколько инструкций, то
они объединяются после оператора Do операторными
скобками Begin End.
Задача. Подсчитать количество цифр
данного натурального числа.
Program task_1;
Var m, n: Longint;
k: Integer;
Begin
Writeln (‘ Введи целое число’);
Readln (n);
m: = n; k: = 0;
While m<>0 do begin inc(k); m: = m Div 10; end;
Writeln (‘В числе’, n,’ цифр’, k);
readln;
End.
Задача: Определить, является ли
число палиндромом. Но диапазон данной задачи
должен быть расширен, т.е. число может выходить за
пределы типа Integer. Пусть дано число А<=99999.
Например: 44444; 12321.
Program task_2;
Var d, n, m: Longint;
k: Integer;
Begin
Writeln (‘ Введи целое число’);
Readln (n);
d: = 0; m: = n;
While m<>0 do begin
d: = d * 10 + m mod 10;
m: = m Div 10;
end;
If d = n Then Writeln (‘Перевертыш:’, d) Else writeln (‘не
перевертыш’);
readln;
End.
Program task_3; {Сколько раз встречается максимальная
и минимальная цифра?Var n, m, v: Longint; k, g, f, max, min, i: Integer;
Begin
Readln (n);
m: = n; v: = n;{запоминаем число, т.к n будет изменено }
max: = n mod 10; k: = 1; min: = n mod 10;
While n<>0 do begin m: = n mod 10; inc (k);
If m >= max Then max: = m;
If m < min Then min: = m; n: = n div 10;
end;
Writeln (‘max = ‘, max); Writeln (‘min =’, min);
g:= 0; f: = 0; For I: = 1 to k – 1 do begin If v mod 10 = max then inc(g);
If v mod 10 = min then inc(f); v: = v div 10;
end;
Writeln (‘количество максимальных цифр= ‘, g,’
количество минимальных цифр = ‘, f);
Readln
End.
Задачи для самостоятельного
решения.
- Найти сумму цифр числа;
- Найти первую цифру числа, например, для числа
123456 цифра 1; - Поменять порядок цифр числа, например, было 1234,
стало 4321; - Найти количество четных (нечетных) цифр числа;
- Найти самую большую (маленькую) цифру числа;
- Найти цифры кратные заданному числу M;
- Сколько раз данная цифра встречается в числе?
- Приписать по 1 в начало числа и в конец;
- Поменять местами первую и последнюю цифру
числа, например, из числа 1234 должно быть получено
4231; - Приписать к исходному числу такое же число,
например из числа 1234 получить 12341234; - Определить, является ли заданное число степенью
3 (2…),
Подбор задач тем хорош, что, имея практически
одинаковую структуру программы, можно прорешать
большое количество задач, изменив лишь небольшой
блок. Таким образом, достигается качественное
понимание учеником задачи, нарабатывается
необходимость использовать быстрые клавиши в
среде (что немаловажно при работе). При таком
подходе легко осуществляется постепенный
переход детей, имеющих повышенный интерес к
изучению информатики, к решению задач более
высокого уровня для подготовки к олимпиадам.
Перейти к содержанию
На чтение 1 мин Просмотров 3.6к. Опубликовано 26 октября, 2021 Обновлено 26 октября, 2021
Содержание
- Что нужно сделать
- Что оценивается
- Решение:
Что нужно сделать
Вы участвуете в разработке приложения для математиков, где можно будет делать всё, начиная от простейших вычислений и заканчивая построением сложных графиков. В этом приложении реализована установка диапазона чисел, и вам необходимо написать этакую «защиту от дурака».
Напишите программу, которая получает на вход число и проверяет, двузначное оно или нет. Выведите соответствующее сообщение. Числа −42 и −99 тоже считаются двузначными. Сделайте это, используя не более одного оператора if-elsе. Не используйте elif.
Что оценивается
- результат вычислений корректен, поддерживаются отрицательные числа;
- задача решена без использования строк и операций с ними (конечно, это не относится к приведению целых чисел);
- input содержит корректное приглашение для ввода;
- переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
- правильное употребление пробелов после запятых, при бинарных и логических операциях.
Решение:
num = int(input('Введите число: '))
if (num >= 10) and (num <= 99) or (num <= -10) and (num > -100):
print('Число двузначное')
else:
print('Число не двузначное')
( 8 оценок, среднее 4.5 из 5 )
Дано натуральное число A, большее 9, в записи которого нет нулей. Требуется найти максимальное двузначное число, которое можно увидеть в записи числа A. Например, для числа 18943 ответом будет число 94. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.
|
|
Последовательно выполните следующее.
- Напишите, что выведет эта программа при вводе числа 9532.
- Укажите одно значение A, при вводе которого программа выведет правильный ответ. Укажите это ответ.
- Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
hantolimo
Вопрос по информатике:
Решить задачу на языке Pascal :
Среди всех двузначных чисел найти двузначное число, равное утроенному произведению его цифр.
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок – бесплатно!
Ответы и объяснения 1
kesthal638
var i:integer;
begin
for i:=10 to 99 do
if i=3*(i div 10)*(i mod 10) then writeln(i);
end.
Знаете ответ? Поделитесь им!
Гость ?
Как написать хороший ответ?
Как написать хороший ответ?
Чтобы добавить хороший ответ необходимо:
- Отвечать достоверно на те вопросы, на которые знаете
правильный ответ; - Писать подробно, чтобы ответ был исчерпывающий и не
побуждал на дополнительные вопросы к нему; - Писать без грамматических, орфографических и
пунктуационных ошибок.
Этого делать не стоит:
- Копировать ответы со сторонних ресурсов. Хорошо ценятся
уникальные и личные объяснения; - Отвечать не по сути: «Подумай сам(а)», «Легкотня», «Не
знаю» и так далее; - Использовать мат – это неуважительно по отношению к
пользователям; - Писать в ВЕРХНЕМ РЕГИСТРЕ.
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует?
Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие
вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи –
смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.