Консультация № 192945
16.03.2018, 13:29
0.00 руб.
1 48 1
Уважаемые эксперты! Пожалуйста, ответьте на вопрос:
Добрый день! Прошу помощи в написании программы в программе МАТКАД 14. Программа в свободном практически доступе,вешает копейки.
Условие задачи: Написать программу с использованием оператора while,
определяющую коэффициент продольного изгиба ϕ для стальных элементов в зависимости от гибкости λ и расчетного сопротивления стали Ry.Для определения промежуточных значений использовать линейную интерполяцию.Написать программу с использованием оператора while,
определяющую коэффициент продольного изгиба ϕ для стальных элементов в зависимости от гибкости λ и расчетного сопротивления стали Ry.Для определения промежуточных значений использовать линейную интерполяцию.
Присоединяю файл программы МАТКАД с моей попыткой,и необходимыми данными

Прикрепленные файлы:
4daaf8d817c77e1027a90539b93a8e9132e55180.rar

Обсуждение

давно
Мастер-Эксперт
259041
7459
20.03.2018, 16:45
общий
Адресаты:
Вы сформулировали "Для меня главное- понять и изучить" - хорошо! Давайте изучать вместе. Методичка у Вас есть, интернет получше моего (в нашей "дыре" я получаю ограниченный инет у сотового оператора). Всю науку по Маткаду на этой странице не описать, да это и не нужно, потому что Вы кое-что уже знаете.
На Ваше "нужна помощь" мне надо знать "В чём конкретно на данном этапе?". Если Вы надеетесь дождаться мой будущий Ответ и сразу поумнеть - то так не бывает, чуда не произойдёт. Я умнел много лет, пока научился хорошо программировать в своих любимых скриптах.
Вы просили "помощи в написании программы в программе МАТКАД 14" + "Условие задачи: Написать программу с использованием оператора while" - отправляю Вам простейшие примеры с оператором while : Маткад-докум с комментариями и Скриншот.
while в переводе с английского означает: пока , до тех пор пока. Синтаксис этого оператора следующий:
while Условие
операторы цикла
операторы после цикла
То есть, в цикл-описании всего 4 слова. Алгоритм работы означает: Когда в программном модуле дошла очередь до while-цикла, то сначала проверяется условие (например Y>0 ? либо X<Xk ?) . Если условие истинно, то выполняются операторы цикла. Среди них должен быть какой-то счётчик или др оператор, который должен позаботиться, чтоб первоначальное условие не было истинным всегда. Иначе программа зациклится.
Как только условие станет ложным, то прога выходит из цикла и переходит к операторам, которые ПОСЛЕ цикла. Что не понятно?

Пробуйте повторить мои команды у себя и отрабатывайте навыки.

Я уже доехал до Вашей Лабораторной работы N5 "Решение уравнений". Нужно ли мне изучать все подряд методы, чтоб ответить на Ваш главный Вопрос? Вы же лучше меня знаете иерархию лаб-работ. Может, мне не обязательно изучать всё по порядку, чтобы выполнить Лабу N8 ?
Прикрепленные файлы:
0f3cbb69c22f2459c5ea1d9586abf792.zip
давно
Посетитель
399257
116
20.03.2018, 19:59
общий
Изучать все подряд не надо,они все отличаются! Каждая - это свой этап.Ну, дальше уже немного используются предыдущие навыки
давно
Посетитель
399257
116
20.03.2018, 20:11
общий
Самое интересное в том, что сделать как кто то делает, я могу повторить без проблем, и все будет работать. Проблема в том, что когда я начинаю писать программу для любого своего примера( просто беру и придумываю что нибудь) , по моему получается хрень полная. Ту два варианта)))- либо я делаю уже правильно,но не понимаю то что сделал правильно, либо я действительно туплю((
давно
Мастер-Эксперт
259041
7459
21.03.2018, 15:19
общий
Адресаты:
Вы писали: "сделать как кто то делает, я могу повторить без проблем, и все будет работать" - тут надо радоваться тому, что у Вас работает компьютер, работает Маткад-приложение, и Вы овладели навыком ввода данных. Это уже хорошо!

"Проблема в том, что когда я начинаю писать программу для любого своего примера (просто беру и придумываю что нибудь) ,… получается хрень" - Вы психологически неправильно делаете, обобщая неудачи. Обобщать надо достижения. А неудачи надо обрабатывать каждую индивидуально, и конкретно по каждой стараться понять причину. Если не удаётся понять, - задавайте конкретные вопросы. Срок Вашей Консультации истекает ч-з 5 суток, а Вы ещё ни одного конкретного вопроса не задали по теме "Что именно не получается?"
Мне в подобных случаях помогал простой приём из детской передачи: "Делай как мы, потом делай с нами, потом делай лучше нас". Сначала Вы повторяете чужой код. Потом не надо резко "придумывать что нибудь", а приближаться к своей цели по-шагово, чуть изменяя код учителя под свои потребности и смотреть, как Маткад обработал Ваши поправки.

"либо я делаю уже правильно,но не понимаю" - потому что Вы не внесли творческих изменений. Надо изменять и наблюдать.
"либо я действительно туплю" - конечно, тупите. И я туплю ещё больше Вас. Гений Пушкин ещё 300 назад воспел, что "Опыт - сын ошибок трудных". Без них никак!

Я уже подошёл вплотую к Вашей лабе N8. Но остановка изза Вашего непонятного файл-примера. Вы писали: "Могу лишь скинуть свои решения именно этой лабораторной (Прикреплен фйл RAR [230 кб]. То что сделано, правильно, проверяли мне" - то есть Ваша лаба N4, проверенная преподавателем, должна служить мне образцом. Но там много объектов, назначение которых мне непонятно, я воспринимаю их, как мешающий мусор.

Вы вставили в программную форму большую таблицу с заголовками "Гибкость Лябда", "Коффициенты П для элементов из стали с расчетным сопротивлением…". Но эта таблица НЕ используется программой. Зачем тогда она занимает место и вынуждает прокручивать экран (прокрутка изнашивает зрение), чтоб найти полезные операторы, растыканные по углам?

Надпись "2. Написать программу с использованием оператора while и линейной интерполяцией" есть, а оператора while нету на этом листе. Значит, это тоже мусор?

Под этой надписью программный код "Фи(Лямбда,Ry) := ВертикальнЧерта Лямбда1 <-- Лямбда умножить…" - Этот блок с красным знако-местом НЕ рабочий. Я удаляю его без каких-либо последствий для Вашего работающего графика. Значит, это тоже мусор? Но Вы с преподавателем сочли это как "правильно, проверяли мне". Зачем всё это нужно? Я жду Ваши пояснения.
давно
Мастер-Эксперт
259041
7459
22.03.2018, 01:07
общий
Адресаты:
Изучая Ваш документ с Лабой N8, я на всяк случай прокрутил Ваш Рабочий лист на 4 экрана вправо и неожиданно обнаружил много мусора. Я понял, что Вы продолжаете писать Лабу N8 на том же листе, где была Лаба N4 и др лабы, накапливая прошлые ошибки и мусор. Зачем это издевательство над своими глазами, своим мозгом и Маткад-обработчиком? Разве Вы не знаете, что при открытии листа Маткад обрабатывает ВСЁ содержимое Вашего Рабочего листа слева-направо и сверху вниз?

Я приступаю создавать для Вас новый Маткад-документ с лабой N8, полагая, что в него НЕ нужно вносить накопленный мусор из Ваших старых листов, верно? Или так требуют правила Вашего учебного заведения?

Старайтесь, пожалуйста, ответить на все мои вопросы, они продуманы, лишенего я не спрашиваю. Времени у нас - 4 дня осталось, а проблемы могут возникнуть трудные и долгие в поиске их решения.
давно
Посетитель
399257
116
22.03.2018, 08:02
общий
22.03.2018, 08:03
Адресаты:
если честно я с пятого раза только понял ваш сумбур в написании)))) То что я скидывал,это все ОДНА лабораторная работа № 4 ,просто ниже написано ВАРИАНТ №8. Далее,большой файл, 230 кб, это полностью лабораторная № 4 ,где ДОЛЖНЫ быть все решения этой работы. Чтобы не запутывать никого лишним, я отделил задачу, интересующую меня,и закинул ее отдельно. То решение,которое мешает определению решению в маткаде ( то есть идет пересечение данных и неправильный ответ ) я выношу на отдельный лист,могу показать пример такого решения. Да, прицеплю для примера пожалуй. То, что проверено, это решение задачи с оператором if, и решение по сопромату балки. Далее, таблица рабочая, из нее надо брать данные для написания той программы, по которой я задал вопрос, т.е. оператор while и линейная интерполяция. Я тоже пытаюсь это дома понять, то что вы мне показываете ( свои успехи в написании ) я пробовал, давно уже, и это работало у меня. Пробуя САМ создать программу, наверное не получается,приложу пример своей попытки. Наверное я просто не могу вникнуть в суть работы оператора.
Прикрепленные файлы:
5074639105054136288ee363f6c79f79.rar
давно
Посетитель
399257
116
22.03.2018, 08:24
общий
Я показал в архиве в файле,что таблица работает для использования, единственное,закинул первоисходник файла эксель-таблицу
Прикрепленные файлы:
c143e80fe3210328a126fee16597a619.rar
давно
Посетитель
399257
116
22.03.2018, 08:52
общий
Вот например пробую простой пример сделать,не знаю,правильно ли я понимаю эту суть
Прикрепленные файлы:
b13042d8c8e590e3b7782c896c116da9.rar
давно
Мастер-Эксперт
259041
7459
22.03.2018, 12:51
общий
22.03.2018, 12:56
Адресаты:
В Вашем последнем примере Вы написали программу правильно, она возвратила Вам Ответ в нижнем операторе y=66.
В первых 3х операторах Вы сделали 3 оперции присвоения. Но 1я и 3я операции оказались у Вас без пользы, потому что Вы не вывели их результат на экран. Чтоб делать всё с пользой для учёбы, добавьте строку вывода
y=
под Вашей строкой y := a + Корень(b) . И почаще выводите свои результы на экран.

Также для накопления опыта полезно поиграть в Вашем программном модуле. Замените в его нижней строке букву b на i .
И Вы увидите новый интересный результат y=11 , позволяющий понять принцип работы цикла. Полезн статья по Вашей теме www.nestor.minsk.by/kg/2008/40/kg84002.html

Я сделал Лабораторную работу N8, но теперь понял, что Вам нужна Лаба4. Что ж Вы сразу не сообщили конкретно?
Завтра попытаюсь сделать Лабу4. С программами я уже разобрался, а как делать расчёт балки? В Вашей методичке написано:

4. Записать значение функции изгибающего момента и поперечной силы для шарнирно опертой балки на двух опорах в зависимости от координаты х.
Левый конец балки совпадает с началом координат. Пролет балки - L, нагрузка, действующая на участке 0 <= x < a равна q, на участке a <= x < b равна 2q, на участке b <= x < L равна q. В точках с координатами a и b действуют сосредоточенные силы P и 2P соответственно. Построить эпюры изгибающего момента и поперечной силы при значениях:
a=3 , b=7 , L=9 (я выбрал из Вашего варианта N8)

Вы хотите, чтоб я делал всю Лабу или т-ко пункты 1…3 "1. Написать программу с использованием оператора if… " ?
давно
Посетитель
399257
116
22.03.2018, 14:50
общий
Адресаты:
вы просто не то делали что я спрашивал, возможно это вы делали для самопознания? Но мне интересна только эта задача, которую я отразил в вопросе. Именно лабораторная № 4 , задача № 2. Если вы хотите написать для себя программу по балке, то там нужно знать сопромат,тут я вам не смогу объяснить всю суть. Но саму программу я писал изучив как делал другой человек, что исправил для себя, вот ссылка https://www.kazedu.kz/referat/105418/5
давно
Посетитель
399257
116
22.03.2018, 14:52
общий
Кстати,по поводу той запятой, что вы меня тыкали носом)))) Я привык писать правильно, стараюсь не забывать это. Так вот, после обращения обычно ставят запятую, я не виноват что тут обращение стоит сверху, а снизу сам текст идет. Теперь понял это нюанс.
давно
Посетитель
399257
116
22.03.2018, 14:55
общий
22.03.2018, 14:57
И еще,по поводу примера моего, вы видели что я написал, если вы поняли суть, то исправьте в моем примере и скиньте мне,что бы я увидел что и как я сделал неправильно. А то я наверное излишне себя гружу, а на деле все просто))) У меня так иногда бывает).
Да, есть мысль, если вы поняли,что и как, тогда может дадите мне задание, я попробую сделать, и вы увидите мои ошибки и поправите? Тогда вы научите меня, а не решать мне
давно
Мастер-Эксперт
259041
7459
22.03.2018, 16:52
общий
Адресаты:
Вы писали: "по поводу примера моего, вы видели что я написал, если вы поняли суть, то исправьте в моем примере и скиньте мне" - Вы прислали много файлов. На который из них Вы хотите получить поправки? Если на "Прикрепленный файл (RAR) 5.9 кб" , то я уже отправил Вам поправки в прошлом сообщении. Вы хотите Маткад-документ типа .xmcd ?

"мне интересна только эта задача... Именно лабораторная № 4 , задача № 2" - смотрю Методичку: там написано:
"2. Написать программу с использованием оператора while, определяющую коэффициент продольного изгиба φ для стальных элементов в зависимости от гибкости λ и расчетного сопротивления стали . Для определения коэффициента продольного изгиба использовать табличную зависимость из СНиП II– 23– 81* «Стальные конструкции» (таблица 72 или табл. № 3.1 из л/р № 3). Для определения промежуточных значений использовать линейную интерполяцию" - только на этот единственный абзац Вы хотите получить мой Ответ, верно я понял?
давно
Посетитель
399257
116
22.03.2018, 18:22
общий
Именно)
давно
Мастер-Эксперт
259041
7459
23.03.2018, 12:56
общий
23.03.2018, 17:46
Адресаты:
Я уже начал писать программу для пункта2 "2. Написать программу с использованием оператора while", создал новый Рабочий лист. Но обнаружил неточности в Вашей Методичке, изза чего у меня возникли сомнения в понимании Алгоритма. Вы наверное, заметили, почти все программисты легко пишут программы, когда перед глазами есть понятный и недвусмысленный тексто-графический алгоритм (отличный пример https://www.youtube.com/watch?v=CJsOTRGu9Ow я Вам показывал выше).

А в Вашей Методичке я не уверенно понимаю, и хочу избежать снова делать ненужную Вам работу. Щас я опишу алгоритм и жду Ваше подтверждение, чтоб по нему писать программу.

В методичке в разделе для Лабы N3 приведена Таблица 3 с заголовком "Коэффициенты П для элементов из стали с расчетным сопротивлением, кгс/см^2". На самом деле, вместо "П" надо подразумевать Фи - то есть искомый Коэффициент продольного изгиба. Я понимаю, будто Фи - это табличная функция, зависящая от 2х аргументов:
В левом столбце заголовок: "Гибкость, Лямбда" и вниз перечислены ячейки со значениями: 10, 20, 30… - это первый аргумент Лямбда, от которого зависит функция Фи .
В правом столбце строка чисел 2050 2450 2850 3250 3650 4100 4500 4900 5300 5700 6100 6550 - это значения второго аргумента Ry - расчётное сопротивление стали, верно?

Таким образом, задача сводится к программной выборке из этой таблицы нужных значений из ячеек, соответствующих аргументу1 Лямбда и аргументу2 Ry. Можно вывести значения из любых ячеек. Но ниже, в пункте3 Лабы указано конкретно: "Вычислить значения коэффициента продольного изгиба, используя программы задания N1 и 2 при следующих исходных данных:
Лямбда=63 , 74 , 82 , 91 , 95 … 119
Ry=2450 , 2450 , 2550 , 2550 , 2550 … 2550

Поскольку указанные Лямбда-значения отсутствуют в таблице, значит, надо выбрать значения из ближайших соседних ячеек и вычислить линейную интерполяцию.

Далее указано "Сравнить полученные значения" - вероятно, сравнивать надо будет значения функции для одинаковых аргументов, полученные разными методами из пунктов 1 и 2 Лабы4. Ну, это Вы уже сами сравните. А мне надо будет к запрос-таблице пункта3 с 2мя строками Лямбда и Ry приклеить 3ю строку с вычисленными значениями (чтоб Вы могли сравнивать их).

Таблицу 3 "Коэффициенты П для элементов из стали..." Вы в своих первых файлах вставляли в докум, как картинку. Но Маткад не умеет распознавать буквы и цифры из картинок. 22марта Вы прислали Маткад-файл с нужной таблицей в числовом формате. Я импортировал её в свой прог-лист. Мне уже некогда проверять, правильно ли Вы ввели эти числа?, проверьте сами, пожалуйста. Я только поправлю заголовок во избежание путаницы, поскольку верхний ряд чисел 2450 , 2450 , 2550 , 2550 , 2550 … 2550 - это Ry-значения, а все нижние - Фи-значения.
Итак, я жду Ваше подтверждение либо поправки к моему алгоритма Вашей задачи.
давно
Посетитель
399257
116
24.03.2018, 06:54
общий
24.03.2018, 06:55
Адресаты:
документ вставлялся как картинка скорее всего из за отсутствия ексель файла, мой косяк, забыл прицепить. И, еще раз повторю, интересует только написание этой задачи, по которой я и создал тему, именно лабораторная № 4 , задача № 2. Фи, да, это выход из табличных данных, зависит от лямбды и от Ry. "Таким образом, задача сводится к программной выборке из этой таблицы нужных значений из ячеек, соответствующих аргументу1 Лямбда и аргументу2 Ry.".
Я так понимаю у нас не получится занятий, времени мало( Жаль, но по решенному я сразу пойму то, что до меня не доходит, хотя конечно когда решишь сам, дойдешь до этого, отложится надолго.
Спасибо, что ради меня приложили столько усилий!
давно
Мастер-Эксперт
259041
7459
24.03.2018, 11:14
общий
Адресаты:
Я понял Ваше задание. Приступаю к написанию кода программы. Надеюсь, мне удастся написать и отправить Вам Ответ ч-з 18 часов.
Вы писали : "из за отсутствия ексель файла, мой косяк, забыл прицепить" - 22марта Вы прислали Excel файл, но толку от него нету, потому что моя версия Маткада не умеет импортировать из xls . Удаётся лишь импорт числовых данных их текстовых файлов, и то при условии, что матрица прямоугольна и НЕ содержит ячеек с текстом среди числовых.

"Я так понимаю у нас не получится занятий, времени мало" - я давно предлагал Вам задавать конкретные вопросы по учебным этюдам, но Вы ничего не спрашиваете.

Ваша ошибка в том, что Вы присылаете огромные листы, я поначалу даже не догадывался о наличии в них блоков, невидимых далеко за правой границей экрана. Программисты так никогда не делают. Они пишут на чистом листе маленький фрагнмент кода, только то, что не получается. И затем много-кратными поправками и методами пытаются найти и устранить ошибку. Потом аналогично отлаживают второй маленький проблемный фрагмент. И лишь когда им полностью понятен алгоритм и особенности синтаксиса всех фрагментов, они объединяют фраги в большую прогу. Иначе Вы запутаетесь от взаимных ошибок/помех , и в голове будет "каша".

Надеюсь, Вы уже научились простым приёмам скопировать/вставить/передвинуть/удалить? Я могу прислать Вам черновик, куда я вписываю свои "находки" (приёмы работы, глюки и особенности), не описанные или недостаточно-хорошо описанные в учебниках и Вашей методичке.
давно
Посетитель
399257
116
24.03.2018, 19:53
общий
я вас давно просил скинуть файл
давно
Мастер-Эксперт
259041
7459
25.03.2018, 00:18
общий
25.03.2018, 00:34
Адресаты:
Вы писали: "я вас давно просил скинуть файл" - который файл ? Я не телепат, читать Ваши внутренние мысли я не умею. Маткад-документ и скриншот с учебным примером применения цикла While я отправил Вам (не "скинул") 20 марта (5 дней назад).

Если Вы подразумеваете цитату из Вашего предыдущ поста "задача сводится к программной выборке из этой таблицы нужных значений из ячеек, соответствующих аргументу1 Лямбда и аргументу2 Ry" - то это всего лишь первый этап, недоделка, а не решение задачи, описанной в Вашем Вопросе как "Написать программу с использованием оператора while, определяющую коэффициент продольного изгиба Фи для стальных элементов в зависимости от гибкости Лямбда и расчетного сопротивления стали Ry. Для определения промежуточных значений использовать линейную интерполяцию."

Оба цикла While позволяют выбрать из таблицы 4 значения типа "вокруг да около", оружающие со всех 4х сторон искомую величину. Для окончательного решения (получения искомой величины) нужна двумерная интерполяция, 3 доп-вычисления , которые гораздо запутаннее циклов While . Поэтому файл с Маткад-документом я сделал только сегодня в час ночи. Только что я поправил его неточности. Сейчас у нас 7 утра (я спал 5 часов всего). Щас отправлю Вам этот файл. Только Вы вряд ли поймёте его без спец-описаний (читать чужие программы труднее, чем писать свои). Мне надо ещё неск-ко часов написать для Вас алгоритм с картинками и пояснениями.

А Ваше "Я так понимаю у нас не получится занятий, времени мало" - Вы путаете понятия УчёбаЗнания и РезультатЛабы. Они НЕ зависимы! Можно иметь одно, но не иметь другого. Пока я занимался Вашей лабой, Вы могли учиться, упражняться в маленьких прог-фрагментах, задавать мне вопросы и нарабатывать Опыт, который и есть Знания!
Прикрепленные файлы:
fe7cbe2bea66898d27a22bfa6e21c098.zip
давно
Мастер-Эксперт
259041
7459
25.03.2018, 01:40
общий
Адресаты:
Кажется, я догадался, о чём Вы "давно просил скинуть файл". Отправляю Вам Ваш УчебныйПример с поправкой.
В дистанционном сотрудничестве надо тренировать своё умение+старание выражаться корректно. Меня в своё время чувствительно наказывали за недостаточное старание.
Прикрепленные файлы:
053e9bcd78b03ff6ccd170c4fce9e624.zip
давно
Мастер-Эксперт
259041
7459
25.03.2018, 10:09
общий
это ответ
Здравствуйте, lexa77!
Вы просили "Написать программу с использованием оператора while…" в приложении Маткад14. Мне удалось скачать и установить это приложение. Код написанной мною программы с подробными комментариями, скриншот и поясняющий рисунок прилагаю.

В пункте3 приложенной Вами Методички для выполнения Вашей Лабораторной работы N4 предписано: Вычислить значения коэффициента продольного изгиба, используя программы задания N1 и 2 при следующих исходных данных:
[$955$] = 63 , 74 , 82 , … 119
Ry = 2450 , 2450 , 2550 … 2550

Чтоб Вы не запутались в большом коде, я в качестве исходных данных чуть изменил имена переменных на [$955$]i и Ri , поскольку при выборке данных из большой таблицы N3 с Ф([$955$],Ry) имена переменных [$955$] и Ry уже используются.
Далее, угождая Вашему пожеланию нумеровать ячейки таблицы, начиная с 1, я добавил оператор ORIGIN:=1
Но Вам полезно помнить, что большинство прог-языков и программистов используют нумерацию массивов и таблиц начиная с нуля. В том числе и в Вашем любимом Маткаде в Методичке для Вашей будущей лабы N8 предложен код с нумерацией от нуля. И Вам в лабе8 придётся либо прекратить использовать оператор ORIGIN:=1 , либо поправить код.

При выборке из таблицы редко удаётся найти в ней нужное сочетание аргументов [$955$] и Ry . Поэтому для получения функции Ф мы на первом этапе выбираем имеющиеся в таблице значения из ближайшего окружения искомого аргумент-сочетания.

Алгоритм поиска окружения прост: Начинаем читать ячейки верхней строки таблицы со столбца N3 . Цикл while либо не выполняется либо многократно инкрементирует (увеличивает на 1) значение счётика n (в зависимости от заданного значения Ri ).
Как только значение Ry очередной ячейки становится больше, чем выше-заданное Ri , условие правее слова while становится ложным, и цикл прекращается. Найденный номер n выводится из прог-модуля в переменную NR .

Аналогично в следующем цикле с оператором while ищем в левом столбце таблицы ячейку сверху-вниз, в которой значение [$955$] становится больше, чем выше-заданное [$955$]i . Начинаем поиск со строки номер n=3 .Найденный номер выводится из прог-модуля в переменную N[$955$] .

В результате поиска мы нашли 4 ячейки, окружающие искомый аргумент [$955$],Ry . 2 ячейки справа (точки 1 и 2 на рисунке Интерполяция.png ) имеют табличные номера N[$955$]-1,NR и N[$955$],NR , а 2 ячейки слева (точки 3 и 4) - N[$955$]-1,NR-1 и N[$955$],NR-1 .

В Маткаде14 отсутствует функция дву-мерного интерполирования (сразу по 2м аргументам). Поэтому придётся трижды применить функцию одномерного интерполирования
linterp(x,y,t)
где x - вектор опытных значений аргумента; y - вектор опытных значений функции; t - значение аргумента, при котором вычисляется интерполирующее значение функции.
Сначала интерполируем опытные значения м-ду точками 1 и 2 согласно прилагаемому рисунку, потом м-ду точками 3 и 4. В конце получаем готовый результат Фi интерполяцией м-ду точками ФЛев и ФПрав.

Преподаватель может задать Вам каверзный вопрос: "А зачем делать лишние действия по интерполяции в случае, если из таблицы будут выбраны существующие в ней значения?". Ответ прост: Существующие значения не нуждаются в интерполяции, но они выбираются из таблицы очень редко. Линейная интерполяция существующих значений НЕ портит эти значения и происходит достаточно быстро в современном компьютере. Но отказ от этой избыточной операции вынуждает усложнять код программы, добавлять условные операторы if , увеличивает вероятность ошибки для начинающих программистов.

Этот упрощённый код НЕ содержит также так называемую "Защиту от дурака", которая в случае использования неправильных аргументов [$955$] и Ry (текст вместо числа) должна прекратить выполнение программы и выдать соответствующее сообщение на экран. Поэтому, на данном этапе если Вы введёте значения [$955$]>220 , или Ry>6550 (вне табличные), то программа выдаст ошибку. Дополнить код программы можно будет потом при необходимости. =Успехов!
5
давно
Мастер-Эксперт
259041
7459
25.03.2018, 15:56
общий
Адресаты:
Я прикрепил архив с Маткад-документом и картинками к Ответу, но окно ПредПросмотр автоматически отбрасывает прикреплённый файл (старый глюк rfpro-сервера), а в окне РедактированиеОтвета возможность прикрепления не предусмотрена. Прикрепляю архив к текущему посту.
Прикрепленные файлы:
fc5707f9388f49904377e4f94db73d14.zip
давно
Мастер-Эксперт
259041
7459
25.03.2018, 16:12
общий
25.03.2018, 16:13
Адресаты:
Обновлённый архив с Лаба4-документом.
Прикрепленные файлы:
9efd9a1cfe7b38c3d32d1107842d6e95.zip
давно
Посетитель
399257
116
25.03.2018, 16:47
общий
Хорошо,спасибо!Надеюсь я разберусь в этом
давно
Мастер-Эксперт
259041
7459
26.03.2018, 14:02
общий
Адресаты:
Сегодня я ходил в тайгу за ключевой водой и думал, как избавить Программу от 2х недостатков, кот-е я отметил в Ответе?
Оказывается, это не слишком сложно. "Защиту от дурака" выполняет оператор Break (чтоб цикл не пытался читать несуществующие в таблице столбцы, если пользователь задал запредельные значения аргументов для выборки).
А оператор if позволил отменить избыточные операции интерполирования. Прога ещё не дописана для самого трудного случая, когда требуется двумерная интерполяция. Но уже работает и радует! Отправляю Вам обнов ЛабаN4с.rar .
Прикрепленные файлы:
4f239557f898b37df28447d5492898ab.rar
давно
Мастер-Эксперт
259041
7459
26.03.2018, 18:52
общий
Адресаты:
Готовая программа с поясняющими картинками.
Прикрепленные файлы:
20d0eb799bf74c31bf67e5202703e83c.zip
давно
Посетитель
399257
116
27.03.2018, 03:42
общий
Адресаты:
вы проделали огромную работу, я бы сам точно не смог это сделать в ближайшее время. Мне остается только понимание написанного.
давно
Посетитель
399257
116
27.03.2018, 03:45
общий
У меня просто периодическая аттестация на основной работе, потому немного отвлекся от учебы, чтобы не потерять работу)
давно
Мастер-Эксперт
259041
7459
27.03.2018, 06:21
общий
Адресаты:
Я очень рад, что Вы оценили мои старания! Признаюсь Вам по секрету, я давно хотел опробовать Маткад, но Вы дали ссылку и повод, за что я также благодарен Вам. Меня совесть мучит, что я отправил Вам большой код, слишком сложный для понимания, и тем самым не выполнил Вашу просьбу "еще раз повторю, интересует только написание этой задачи, по которой я и создал тему, именно лабораторная № 4 , задача № 2. Фи, да, это выход из табличных данных, зависит от лямбды и от Ry"

Поэтому я сейчас отправляю Вам предельно упрощённую версию кода с минимально-требуемой задачей выборки из большой таблицы ближайших значений Фи в зависимости от [$955$] и Ry с использованием цикловых операторов while .
Для облегчения понимания работы циклов я удалил блоки интерполяции. А Вы можете также удалить 1 из 2х Ответ-выводов : нижний блок либо Фупрощён . При этом надо помнить, что упрощённая прога не интерполирует и будет выдавать ошибку при вводе значений [$955$] и Ry за пределами границ таблицы.
А полная версия аккуратно исполняет линейную интерполяцию Фи-значений при любых заданиях [$955$] и Ry , хоть до миллиона! Я даже сам удивился!
Прикрепленные файлы:
45c48a18a4e346ba6ab4b1377ac03e0d.zip
давно
Посетитель
399257
116
27.03.2018, 14:22
общий
Адресаты:
я премного вам благодарен, мне ОЧЕНЬ понравилась ваша программа. Просто в ней надо разобраться, как и какими командами она работает со значениями. Я проверил ее работу,очень хорошо!
Форма ответа