Помогите в решении простейших задач

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

ninjais
Сообщения: 15
Зарегистрирован: 09 сен 2007, 07:28

Помогите, пожалуйста, в решении этих задач на языке Паскаль.
Это самые первые задачи, которые дали на первом курсе. А я даже не знаю как из решать. Очень прошу помочь.

1). Запишите по правилам Паскаля выражение:

Изображение

2). Вычислите значение функции

sin(sin(sqr(x)-1))+cos(x*x*x-1)*cos(abs(x-2)-1)/y*a+sqrt(abs(y)-x)

При x=1, y=-2, a=2, b=3.

3). Задайте в виде оператора присваивания переменной z значение, равное полусумме значений переменных x и y.

4). Составьте блок-схему для следующей задачи: Пересчитать величину временного интервала, заданного в минутах, в величину выраженную в часах и минутах.

5). Напишите программу на языке Паскаль, для решения следующей задачи: Свежие грибы весят N кг и содержат D% воды. После сушки грибы весят K кг. Определить сколько процентов воды содержится в грибах после сушки.

Мне хотя бы одну задачку, или подсказку. Очень-очень прошу!
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

Уважаемый ninjais!

ну надо же хоть чуть-чуть язык подучить - иначе как вы собираетесь сдавать экзамен?!
ninjais писал(а):Помогите, пожалуйста, в решении этих задач на языке Паскаль.
Это самые первые задачи, которые дали на первом курсе. А я даже не знаю как из решать. Очень прошу помочь.
и так, навскидку...
1)
( sin(a)+b ) / ( abs(b) + cos(b) )
лишниие проблемы только для красоты - их можно по желанию убрать

2) результат вычислений = 0.0

Код: Выделить всё

var
 x,y,a,b, resultat : real;
begin
  x:=1; y:=-2; a:=2; b:=3;
  resultat := sin(sin(sqr(x)-1))+cos(x*x*x-1)*cos(abs(x-2)-1)/y*a+sqrt(abs(y)-x);
  WriteLn( resultat:10:2 )
end.
3) z := (x + y) / 2;

4) ну, тут может быть несколько путей решения - нормальный - эта задача записывается в два (ДВА) действия!
часы := trunc( Интервал/60 )
минуты := Интервал - Часы*60

Код: Выделить всё

var
 t, h, m : integer;
begin
  Write('Введите временной интервал в мин: ');
  ReadLn(t);
  h := trunc( t/60 );
  m := t - h*60;
  WriteLn(t,'  ', h,':', m);
end.
блок схему сами нарисуйте!
есть втрой вариант - медленный и плохой - но полезный в плане учебном (работа с циклами) - отнимать от интервала 60 пока интервал больше 60 и каждый раз наращивать при этом часы на 1.
приблизительно так (рисовать будете сами ;-))
1) начало
2) ввести интервал T
3) положить (присвоить) переменную H (часы) := нулю
4) если T меньше 60 перейти на п.8 (выход из цикла)
5) T:=T-60;
6) H := H + 1;
7) перейти на п4 (к началу цикла - проверка выхода)
8) оставшийся интервал сохраняем как минуты M := T
9) вывод значений часа H и минут M
10 конец
ninjais
Сообщения: 15
Зарегистрирован: 09 сен 2007, 07:28

Спасибо Вам большое.
Бывают же на свете такие люди, которые готовы бескорыстно помочь. Вы меня очень выручили. Я даже смогла самостоятельно решить последнюю задачу.
Вот, взгляните, правильно ведь?..)
А что означает число, которое я подчеркнула красной линией?
Оно во всех задачах будет шестёркой?..

Изображение

Я с Паскалем познакомилась лишь недавно, на 45-минутной лекции, после которой сразу дали эти задания. Поэтому возникли затруднения, но теперь всё понятно, благодаря Вам..)
ninjais
Сообщения: 15
Зарегистрирован: 09 сен 2007, 07:28

Извините, у меня возник вопрос, касаемо блок-схемы.
Я не очень понимаю как её рисовать. Правильно ли я сделала?
И совершенно не знаю что на месте вопросительного знака..
Если Вам в тягость, не объясняйте, я всё пойму, Вы и так почти всё за меня решили..)

Изображение
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

ninjais писал(а):Я даже смогла самостоятельно решить последнюю задачу.
Вот, взгляните, правильно ведь?..)
мне кажется, что нет...

я бы решал её так,
1) нашёл вес сухой части грибов := N*(1-D/100)
2) при вводе веса грибов после сушки можно проверить
если K< чем сухой вес ( K< ( N*(1-D/100) )
тогда выдать ошибку - ведь нельзя высушить из грибов сухую составляющую
3)
x := 100 * (K-N*(1-D/100))/K;
WriteLn('Процент воды после сушки =',X:6:2,'%');
при K = сухой массе - получим процент = 0.00%

и ещё - при вводе/выводе пишите осмысленный текст в сообщениях пользователю
(напрммер, вместо
'введите значение для N:' гораздо лучше - 'введите вес свежих грибов в кг, N :'
А что означает число, которое я подчеркнула красной линией?
Оно во всех задачах будет шестёркой?..
1) нужно указать ещё после запятой знаки
например, так: WriteLn(x:8:2);
2)
Первое число после знака ":" обозначает количество позиций, выделяемых под всю переменную, а второе - под дробную часть числа. Десятичная точка тоже считается отдельным символом...
подробнне можете прочитать в курсе Интернет-Университет Информационных Технологий
Программирование на языке Pascal
но теперь всё понятно, благодаря Вам..)
$-))
на здоровье! ;-)))
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

по поводу блок схемы - всё верно.
там же написано, переход к пункту 4
Изображение

и ещё.
лень перерисовывать, но красивее было бы сделать так,
от ромбика стрелка нет идёт вниз, там блок T:=T-60; H:=H+1
а по "да" уходит вниз на блок M:=T
так все блочки получаться в один столбик - будет вертикальное расположение блоков... впрочем, это дело вкуса.
Замечу, что если блок схема нужна в эл.виде, то существует куча специальных программ (редакторы блок-схем_, которые позволят это сделать красиво. на крайний случай пойдёт MS Visio (просто он мощнее, чем вам нужно, да и пользоваться им надо уметь!)
ninjais
Сообщения: 15
Зарегистрирован: 09 сен 2007, 07:28

Спасибо Вам ещё раз.
Блок-схема нужна не в электронном виде.
ninjais
Сообщения: 15
Зарегистрирован: 09 сен 2007, 07:28

я бы решал её так,
1) нашёл вес сухой части грибов := N*(1-D/100)
2) при вводе веса грибов после сушки можно проверить
если K< чем сухой вес ( K< ( N*(1-D/100) )
тогда выдать ошибку - ведь нельзя высушить из грибов сухую составляющую
3)
x := 100 * (K-N*(1-D/100))/K;
WriteLn('Процент воды после сушки =',X:6:2,'%');
при K = сухой массе - получим процент = 0.00%

и ещё - при вводе/выводе пишите осмысленный текст в сообщениях пользователю
(напрммер, вместо
'введите значение для N:' гораздо лучше - 'введите вес свежих грибов в кг, N :'
А ещё, по поводу последней задачи.. что значит 1-D? Ведь если подставить в D какое-либо число, то получится отрицательный ответ..
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

D - по условию задачи - это ПРОЦЕНТЫ (они могут быть от 0 до 100)
Вы неверно понимаете порядок арифметических действий 1-D/100 - сначала выполняется деление, а потом вычитание.
т.о. при D=0% выражение 1-D/100 = 1-0/100 = 1
при D=100% -> 1-100/100 = 1-1 = 0
ninjais
Сообщения: 15
Зарегистрирован: 09 сен 2007, 07:28

Это опять я.. помогите решить две задачки до завтрашнего утра.. пожалуйста..

1). Дано натуральное число N. Вычислить 2 в степени N.

2). Дано натуральное число N. Сколько цифр в числе N делятся на 3?
Ответить