IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

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

 
 Ответить  Открыть новую тему 
> Задачи по паскалю. Вопросы., Большая просьба.
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Женский

Репутация: -  0  +


Цитата
Дело в том, что я перешла в другую школу, скажем так переехала из другого города, суть не в этом, я в 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.


Вот. Если можете, помогите разобраться, спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


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 (это левая цифра)
Сложим их и получим искомое.
Теперь скажу, почему эти цифры пришлось вычислять, а нельзя было сразу взять (если число написано на листочке, они как бы уже ЕСТЬ). Дело в том, что в машине внутреннее представление числа не десятичное. Вообще-то, оно двоичное, но это тоже неважно. В программировании число - это абстрактное ЧИСЛО - и ничего больше (если нет конкретного указания на представление). Но ты можешь сказать - комп же печатает число цифрами! значит, он их знает smile.gif. Это правильно. Но дело в том, что печатанием (выводом) числа занимается специальная программа, которая как раз работает примерно так, как написано выше. Поскольку она уже готовая, то можно было не писать свой код, а воспользоваться ей. И это был бы другой способ решения этой задачи. Но в нем есть свои сложности. Если хочешь, я расскажу подробнее.

Попробуй со второй задачей разобраться сама (на основе того, что узнала выше). Я только приведу тут подправленный и улучшенный ее вариант, чтоб тебе было проще.
program num_5;
var
  x, h, m: word;
begin
  readln (x);
  h:= x div 3600;
  m:= x  div 60;
  writeln ('часов: ',h);
  writeln ('минут: ',m);
end.

Пиши, как успехи.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






ПОЖАЛУЙСТА ПОМОГИТЕ С ЗАДАЧЕЙ!!!
****
Не следует использовать чужие темы для решения своих задач - создайте свою тему и задавайте вопросы.

Сообщение отредактировано: APAL -
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 29.07.2025 9:29
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name