1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Дело в том, что я перешла в другую школу, скажем так переехала из другого города, суть не в этом, я в 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.
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.
Пиши, как успехи.
--------------------
я - ветер, я северный холодный ветер я час расставанья, я год возвращенья домой