Консультация онлайн # 202990

Раздел: Информатика
Автор вопроса: missyska (Посетитель)
Дата: 14.06.2022, 09:16 Консультация неактивна
Поступило ответов: 1
Здравствуйте! У меня возникли сложности с таким вопросом: составить блок-схему, написать программу на языке Pascal

-----
Прикрепленные файлы:

Ответ # 1, Megaloman (Мастер-Эксперт)

Увидел случайно вопрос без ответа, понимаю, что мой ответ запоздал, да и в Pascal я новичок, но решение Алексеев Владимир Николаевич в мини-форуме не совсем меня устроило: я не считаю правильным жестко прописывать исходные данные в коде программы, из которого затем создаётся exe-файл. Программы создаются для пользователя, пользователь не создаёт exe-файл.
Я сделал код со вводом данных.
Код
Uses CRT;
Var
	x, y, z : Real;
	i : Real;

Function FuncU(f : Real; a : Real; b : Real) : Real;
	Var fu : Real;
	Begin
		fu := Exp(Ln(f) / 3.0);
		If (fu < a + b) Then fu := a + b;
		FuncU := fu;
	End;

Begin
	ClrScr;
	i := 1;
	While i = 1 Do Begin
		WriteLn;
		Write('Введите значение x: ');
		Read (x);

		Write('Введите значение y: ');
		Read (y);

		WriteLn;
		Write('x=',  x:5:2, ';  y=',  y:5:2);
		If (x-y < 0) Then
			Begin
				Write('; z=Sqrt(x)+Sin(y);');
				If x < 0 Then WriteLn(' x<0. Данные не корректны') Else WriteLn(' U=', FuncU(Sqrt(x) + Sin(y), x, y) :7:3);
			End
		Else WriteLn('; z=tg(x*y); U=', FuncU(Sin(x * y) / Cos(x * y), x, y) :7:3);

		WriteLn;
		Write('1 - ввод данных, иное число - завершение работы: ');
		Read (i);
	End;
End.
.pas и .exe файлы прикрепляю, уберите из прикреплённых файлов расширение txt
R220729.PAS.txt (893 байт)
R220729.EXE.txt (17.78 кБ)

Блок-схемы не рисую, не владею стандартами и инструментом.
Программа создана в среде Turbo Pascal 7.0

Последнее редактирование 29.07.2022, 17:43 Megaloman (Мастер-Эксперт)

-----
Прикрепленные файлы:


Megaloman

Мастер-Эксперт
29.07.2022, 17:27
Нет оценки ответа

Мини-форум консультации # 202990

missyska

Посетитель

ID: 406067

326512

= общий =    14.06.2022, 12:54
Экспертам раздела
образец решения
Алексеев Владимир Николаевич

Мастер-Эксперт

ID: 259041

326584

= общий =    20.06.2022, 00:45
За 5 суток Вы вероятно уже решили эту задачу самостоятельно, и моя помощь уже не нужна?
missyska

Посетитель

ID: 406067

326588

= общий =    20.06.2022, 10:42
хотелось бы получить Вашу помощь, пожалуйста!
Алексеев Владимир Николаевич

Мастер-Эксперт

ID: 259041

326589

= общий =    20.06.2022, 12:41
Ваше "пожалуйста" - волшебное слово. Придётся мне постараться.
Ваш скрин с Условием слишком неразборчив, а Вы поленились написать копию Условия текстом (чтоб я мог быстро скопировать/вставить). Мне приходится писать текст вместо Вас, наугад. А Вас я прошу подтвердить / поправить правильность моего понимания. Условие:
Z = √x + sin(y) если x - y < 0  ;  Z = tg(x·y) если x - y ≥ 0
U = max{3√Z ; x+y} (тут цифра "3" перед Z-радикалом похожа на "8")
Выполнить выше-вычисления 2жды : Для пары {x = 1,5 ; y = 2,2} и для пары {x = 2,6 ; y = 0,2} .


Как Вы проверяете созданные мною программы? Запускаете exe-файл в предвари загруженном окне Командной строки? Либо дубль-кликом в Проводник-окне? В зависимости от Вашего способа запуска я должен добавить в код, либо не добавить стоп-запрос "Жми клавишу "Enter" закрыть окно программы".

И снова Я жду Ваш выбор варианта для обхода разногласий Условия задачи с Вашим Примером, как в Вашей rfpro.ru/question/202989 пост 326549 (ссылка). Присутствующий в примере оператор
readln(x; y); с предвари-пояснением 'Vvod x, y' , вынуждает пользователя ввести значени переменных "x", "y" с клавиатуры. Но произвольные значения, НЕ совпавшие с данными Вашего варианта, приведут к НЕправильному Ответу! Что будем делать?
1) Откажемся от диалогового запроса данных и введём "x", y-значени в коде программы (простейший вариант кода!);
2) Выполним диалоговый запрос данных с клавиатуры, выведем их на экран и проигнорим их. В ниже-вычислениях используем "x" , y-значени, заданные в коде согласно Условию.
3) Выполним диалоговый запрос, но прекратим выполнение с сообщением о вводе чисел, НЕсоответсвующих Условию.
missyska

Посетитель

ID: 406067

326590

= общий =    20.06.2022, 13:40
не добавляйте enter, закрыть окно;
вариант 1: откажемся от диалогового запроса данных и введём "x", y-значени в коде программы
Алексеев Владимир Николаевич

Мастер-Эксперт

ID: 259041

326592

= общий =    20.06.2022, 16:09
Чтоб не писать одинаковые блоки кода для 2х пар x,y-аргументов, я написал функцию Max(x, y) пользователя.
Прога 2жды вызывает эту функцию с предоставлением ей разных пар аргументов.
Прилагаю код и exe-программу, а также скрины программы, результата и проверки.
Блок-схему нарисуйте сами, мой лимит времени истёк (у нас уже полночь на ДальВостоке). =Удачи!

-----
Прикрепленные файлы:

missyska

Посетитель

ID: 406067

326593

= общий =    20.06.2022, 16:15
спасибо Вам большое!
Алексеев Владимир Николаевич

Мастер-Эксперт

ID: 259041

326600

= общий =    21.06.2022, 00:40
НаЗдоровье Вам! Заходите, когда будет нужно. smile
Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.