Дело в том, что я перешла в другую школу, скажем так переехала из другого города, суть не в этом, я в 10 классе, начала учить информатику, но мне задали задачи, я их сделала с подругой, но она не смогла мне их объяснить. Такая просьба, ниже напишу задачу и решение, мне просто нужно объяснить что да как, чтобы понять как это все делать.
1) Составить программу вычисления для заданного трехзначного целого числа: суммы чисел. (программа):
program num_3; var a, b, c, x, y:word; begin readln (x); a:= x mod 10; c:=( x div 10) mod 10; y:=a+b+c; writeln (y); end.
2) Идет каждая секунда суток. Составить прогр. вычисл. количества полных часов (h) и минут (m) от начала суток. (программа):
program num_5; var x; h; m:word; begin readln (x); h:= x div 3600; m:=(x - (3600*h)) div 60; writeln (h); writeln (m); end.
Вот. Если можете, помогите разобраться, спасибо.
Lapp
17.10.2011 19:31
TorBeattis, пожалуйста, помещай код в теги code (нужно выбрать код мышкой, кликнуть в меню CODE над окном ввода и выбрать нужную строку - или же написать теги вручную).
program num_3; var a, b, c, x, y:word; begin readln (x); a:= x mod 10; b:=( x div 10) mod 10; c:= x div 100; y:=a+b+c; writeln (y); end.
Я для начала немного подправил программку.. Ты знаешь, что такое div и mod? div - это деление нацело с отбрасыванием остатка. Например, 34 div 10 будет равно 3, а 25 div 11 = 2. mod - это, наоборот, только остаток. Например, 34 mod 10 = 4, а 25 div 11 = 3. Уверен, эти операции ты помнишь с первого класса и сможешь их применить. Вся сложность просто в том, что в Pascal они обозначаются так мудрено )). Далее, := есть оператор присваивания. То, что получилось справа, присваивается той переменной, что стоит слева. Теперь возьмем любое трехзначное число и попробуем с ним сделать то, что написано в программе: x = 123 123 mod 10 = 3 (это самая правая цифра) 123 div 10 = 12 ; 12 mod 10 = 2 (это средняя цифра) 123 div 100 = 1 (это левая цифра) Сложим их и получим искомое. Теперь скажу, почему эти цифры пришлось вычислять, а нельзя было сразу взять (если число написано на листочке, они как бы уже ЕСТЬ). Дело в том, что в машине внутреннее представление числа не десятичное. Вообще-то, оно двоичное, но это тоже неважно. В программировании число - это абстрактное ЧИСЛО - и ничего больше (если нет конкретного указания на представление). Но ты можешь сказать - комп же печатает число цифрами! значит, он их знает . Это правильно. Но дело в том, что печатанием (выводом) числа занимается специальная программа, которая как раз работает примерно так, как написано выше. Поскольку она уже готовая, то можно было не писать свой код, а воспользоваться ей. И это был бы другой способ решения этой задачи. Но в нем есть свои сложности. Если хочешь, я расскажу подробнее.
Попробуй со второй задачей разобраться сама (на основе того, что узнала выше). Я только приведу тут подправленный и улучшенный ее вариант, чтоб тебе было проще.
program num_5; var x, h, m: word; begin readln (x); h:= x div 3600; m:= x div 60; writeln ('часов: ',h); writeln ('минут: ',m); end.
Пиши, как успехи.
гость
10.12.2013 18:38
ПОЖАЛУЙСТА ПОМОГИТЕ С ЗАДАЧЕЙ!!! **** Не следует использовать чужие темы для решения своих задач - создайте свою тему и задавайте вопросы.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.