Дело в том, что я перешла в другую школу, скажем так переехала из другого города, суть не в этом, я в 10 классе, начала учить информатику, но мне задали задачи, я их сделала с подругой, но она не смогла мне их объяснить. Такая просьба, ниже напишу задачу и решение, мне просто нужно объяснить что да как, чтобы понять как это все делать.
1) Составить программу вычисления для заданного трехзначного целого числа: суммы чисел. (программа):
program num_3;
var
a, b, c, x, y:word;
begin
readln (x);
a:= x mod10;
c:=( x div10) mod10;
y:=a+b+c;
writeln (y);
end.
2) Идет каждая секунда суток. Составить прогр. вычисл. количества полных часов (h) и минут (m) от начала суток. (программа):
program num_5;
var
x; h; m:word;
begin
readln (x);
h:= x div3600;
m:=(x - (3600*h)) div60;
writeln (h);
writeln (m);
end.
Вот. Если можете, помогите разобраться, спасибо.
Lapp
17.10.2011 23:31
TorBeattis, пожалуйста, помещай код в теги code (нужно выбрать код мышкой, кликнуть в меню CODE над окном ввода и выбрать нужную строку - или же написать теги вручную).
program num_3;
var
a, b, c, x, y:word;
begin
readln (x);
a:= x mod10;
b:=( x div10) mod10;
c:= x div100;
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 div3600;
m:= x div60;
writeln ('часов: ',h);
writeln ('минут: ',m);
end.
Пиши, как успехи.
гость
10.12.2013 22:38
ПОЖАЛУЙСТА ПОМОГИТЕ С ЗАДАЧЕЙ!!! **** Не следует использовать чужие темы для решения своих задач - создайте свою тему и задавайте вопросы.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.