singlepost

Помогите написать программу на языке Турбо Паскаль. << На главную или назад  

Даны действительные числа s и t.Используя подпрограмму-функцию получить:z=h (S,T)+h4(4-это степень) (S-T,S+T)+h (2,7) h(a,b)=первая дробь: a(делить на)1+b квадрат+вторая дробь: b(делить на)1+a квадрат

30 ответов в теме “Помогите написать программу на языке Турбо Паскаль.”

  1. 30
    Юля Гадалина ответил:

    дана целочисленная матрица А размером MxN, где M,N – заданные натуральные числа. Сформировать одномерный массив В, где В(j) равно сумме элементов кратных пяти и расположенных в j столбце матрицы, j=1,2…N. если таких элемнтов в j столбце нет, то элементу В(j) присвоить номер столбца. помогите мне пожалуйста!

  2. 29
    Василий Колеватов ответил:

    Антон cppmm Кропачев предложил лучший вариант!
    Его варинт возводит еще и в дробную степень. А цикл нет. К тому же его вариант действительно быстрее выполняется на ПК. Неважно, что на таком пк как у Дмитрия цикл быстро выполняется. С точки зрения программирования – это не красиво и не подходит для написания сложных программ)))

  3. 28
    Андрей Запышный ответил:

    Уж не знал, что сейчас уже в школе трудно с логарифмами.. я о них узнал именно в школе. а фраза: "такие операции уже умеет делать FPU" означает, что устройство процессора для выполнения операций над числами с плавающей точкой тратит на вычисление логарифма с основанием 2 один свой такт. ну или до 4-х по-моему в CISC-процессорах. А для быстрых вычислений, кстати, тоже часто используется Си, т.к. он позволяет использовать ассемблерный код (не знаю насчет паскаля). А производительность мощных вычислительных систем уже давно измеряется в TeraFLOPS.
    PS. Не хотел здесь разжигать религиозных войн на тему того, какой язык программирования лучше и удобнее.. Но на Си вы зря так Дмитрий. И криптографические алгоритмы и нейросетевые тоже пишутся на Си.
    PPS. А школьников гораздо лучше было бы научить писать простые программы на бумаге (чтобы алгоритмы составлять умели), а язык пусть сами выбирают.. Но это так, мое мнение.. Я работаю не в школе, и замечаю, что у многих людей серьезные проблемы с составлением алгоритмов, хоты языков знают милион.

  4. 27
    Антон Кропачев ответил:

    Дмитрий ТИГРА Бородин
    Касательно красивостей языка – сам Вирт призывает отказываться от паскаля. А первоначальный бейсик(на которм я изучал программирование когда-то уже морально устарел).
    По поводу того, что языки разные – это да. Но ни в одном из них не приветствуется вычисление степени через цикл.
    По поводу диплома… Если вы сдали диплом по поводу того, что цикл лучше математической формулы, я хотел бы посмотреть на вашу работу. Честно. Это не сарказм.
    Десятичный логарифм есть не во всех языках. В паскале он есть. Почему бы его не использовать, если он улучшает работу программы?
    Если давать школьникам ваши способы решения данной задачи, лучше им вообще не давать программировать…

    По поводу 2+2 в Си – это одна строчка. ;) )

  5. 26
    Дмитрий Бородин ответил:

    увы. знаю.но он мне не нравится.он некрасив. могу сказать про вас же – вы значит не знаете паскаля и бэйсика,раз не видите что си уродливее их, а скорее не знаете ни одного, по вашей логике. и причем тут ОС? язык для моделирования одно, для расчетов другое, для вирусов и кряков третье,для инета четвертое, для Ос и приложений пятое, неужель вы будете один считать круче другого в данной ситуации, только потому что он рулит в другой? это бред. и на будущее – не спешите бросаться выводами – я и диплом писал по программированию, и работаю преподавателем программирования, а программы на си , написанные моими товарищами, всегда справлялись с гигантскими расчетами хуже чем паскаль, и в разы хуже чем фортран

  6. 25
    Дмитрий Бородин ответил:

    Андрейко
    Не во всех языках есть десятичный логарифм.Кроме экспоненты поэтому надежных решений не будет.Но мне этот метод не нравится-и изза того что нельзя давать логарифмы школьникам,если они их не проходили,и изза некоторой его лоховости – потому что процедура выглядит красивее. Хотя согласен, в физике дробные степени нужны, в молекулярной уж точно

    Си не отстой? сравните , программа в бэйсике чтоб вывести на экран 2+2.и посмотрите ее же в СИ. что отстой :) просто паскаль для расчетов лучше,и это факт, фортран еще лучше – чем ниже язык, тем он примитивнее,но лучше считает. по крайней мере, так считают те кто занимаются обработкой огромных массивов данных для расчетов физических процессов

  7. 24
    Антон Кропачев ответил:

    Дмитрий ТИГРА Бородин
    Неправда. Условие для проверки чётности выполняется один раз. При получении возводимого в степень числа.
    А что касательно точности, опять же, обратитесь к математике… Способ с экспонентой взят не с потолка…

    P.S. Ваше заявление по поводу Си указывает на то, что вы не знаете, как минимум, языка Си. А скорее всего и многих других. Не сочтите за оскорбление. Просто смутно верится, что знающий человек обзовёт отстоем язык, на основе которого написаны большинство используемых языков программирования и операционных систем…

  8. 23
    Андрей Запышный ответил:

    что касается численных методов, то точность легко нагнать прибавлением нескольких слагаемых ряда. а вообще лучше было бы заменить эту формулу на: x**y=2**(y*log2(x)), т.к. такие операции уже умеет делать FPU, чего не знаю насчет экспоненты (в любом случае суть не меняется). проверок все равно не избежать, но не так их уж и много (в любом случае это будет быстрее чем в цикле умножать, да и посмотрел бы я, если честно, каким бы образом вы возвели бы скажем в степень 1.5, используя цикл)
    ЗЫ. да и Си не отстой)

  9. 22
    Дмитрий Бородин ответил:

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

    оптимизировать работу иногда все ж приходится – когда обрабатываются массивы из 100 и более частиц, участвующих в физическом движении.тут уже думаешь и пытаешься все сам улучшить как можно

  10. 21
    Антон Кропачев ответил:

    P.S. Из принципа проверил сейчас ваш способ(правда на Си). Проц Cereron 2.7MHz
    Взял сепень 123456789 от 2-ойки…
    После 15-ти секунд ожидания прервал выполнение программы. Загрузка проца колебалась от 80-ти до 90 процентов.
    Мой способ отработал меньше, чем за одну секунду.
    И не говорите, что у меня проц устарел. ;)

  11. 20
    Антон Кропачев ответил:

    Андрейко 2blondinko| Бландинко
    +1 :)
    Дмитрий ТИГРА Бородин
    Я уже говорил выше, это был пример для возведения в чётную степень(и для отрицательных чисел в данном случае оно работает). Для возведения в нечётную степень надо добавить буквально одно условие, проверку на чётность/нечётность и присваивание отрицательности, если верно второе. Так что не стоит кричать про неработоспособность данного(к слову, взятого из математики) способа.
    А с вашим старым компом таки попробуйте посчитать предложенное Андрейко. ;)
    > конечно,раньше надо было и о типах данных задумываться,чтоб память беречь,и о том чтоб программа поэкономнее была, это да
    Как я уже говорил, плохо, что сейчас никто не задумывается и людей в универах не учат оптимизации. И выходит, что современные программы тормозят на современных компах так же, как и 10 лет назад софт тормозил на 286-ых(в большинстве своём)… По вашему выходит, мощьность комповувеличивают для того, чтобы программисты меньше думали и выдавали халтуру, а не для того, чтобы пользователи получали от своего компа больше пользы…

  12. 19
    Андрей Запышный ответил:

    Антон cppmm Кропачев:
    зачем ты вообще с ними споришь?? пускай возведут любое число в эту степень: 9527933; и сразу все станет ясно. число это простое, так что придется умножать в цикле 9527933 раз. а вообще все эти функции уже давно написаны, как раз чтобы некоторые меньше думали и херни не городили.

  13. 18
    Дмитрий Бородин ответил:

    уже сказал. если отрицательное число в степень возводите – не катит.
    и у меня лично комп с оперативкой 64мб и процем 333,и ничего. а на более старых редко работают. конечно,раньше надо было и о типах данных задумываться,чтоб память беречь,и о том чтоб программа поэкономнее была, это да

  14. 17
    Антон Кропачев ответил:

    Дмитрий ТИГРА Бородин
    Согласен, функцией удобно, когда формула вызывается в программе несколько раз. Что мешает y := Exp(4*Ln(Abs(x)) описать функцией?
    Вопрос-то был в другом. Что писать в теле этой функции.
    И как правильно вы заметили, на современных компах проблем нет… Вот так и рассуждают современные программеры… И выходит, что с увеличением функционала программы, увеличивается обьъём и падает производительность в геометрической прогрессии. А если сделать по уму, программа с аналогичными возможностями сможет идити и на моём древнем ноуте с 32-умя оперативы и 200MHz процом и на современно стационарном современном компе… А освободившиеся ресурсы железа можно потратить на что-нибудь ещё…
    Так и получаются операционные системы, которым для полного функционала нужно 4 гига оперативы… И это для работы какого-нибудь кассира… Обидно…

    Серж Андреев
    Опять же, для больших степеней нерационально.

  15. 16
    Серж Андреев ответил:

    Есть вариант проще: x*x*x*x – всех меньше символов!

  16. 15
    Антон Кропачев ответил:

    Дмитрий ТИГРА Бородин
    Для возведения в чётную степень не обязательно делать проверку на знак числа, всё равно в итоге положительное выйдет. Поэтому, имхо, лучше использовать эту формулу, к прим еру для 8-ой степени… Или 10-ой… Или 100-ой… А теперь представьте себе время выполнения цикла для вычисления 100-ой степени?

    P.S. Возможно я несколько устарел и один из немногих, кто заботится о производительности программ…

    Egor Salutan Zvigunov,вданном примере – это и есть такая универсальная функция. Если нужно использовать её постоянно, никто не мешает написать свой unit, включив её туда, и подключать его к своим программам. :)

  17. 14
    Дмитрий Бородин ответил:

    Цикл и для 100степени справляется прекрасно,проверял,по крайней мере на современных компах нет проблем.В программах,где степень произвольная,надо писать именно функцию,как сказал Егор,или процедуру, по крайней мере мне как физику именно так надо было бы,ведь степени самые разные могут быть, а когда функция раз прописана, в чем проблема то. Хотя бэйсик круче – там эта функция просто есть:)

  18. 13
    DELETED DELETED ответил:

    А не проще написать фуекцию, котораю возводит что угодно во что угодно, без всяких Abs

  19. 12
    Дмитрий Бородин ответил:

    Антон
    А я вообще с этой хренью про логарифм не согласен, я своих приучил еще в теме циклов составлять процедуру для возведения в степень, а данная хрень только положительные числа выдает, это ламеризм чистый

  20. 11
    Антон Кропачев ответил:

    Сергей Герниченко, точно. Очепятался. :)
    Евгений Толмачев, не согласен. Программа учебная. Надо учиться. А если учиться sqr(sqr()), то в будущем так и будут появляться "индусские программеры", которые и 16-ую и ещё больше степени будут через sqr(sqr(sqr(…))) делать.

  21. 10
    Евгений Толмачев ответил:

    Лично я встану на защиту sqr(sqr(x)). Возведение в квадрат может быть реализовано эффективнее, чем возведение в произвольную степень. Особенно, если возведение в степень писать прямо на паскале!

  22. 9
    Сергей Герниченко ответил:

    только не y := Exp(4*Abs(Ln(x))., а
    y := Exp(4*Ln(Abs(x)).

  23. 8
    Люблю Вадика ответил:

    Спасибо большое=)

  24. 7
    Антон Кропачев ответил:

    Примечание 3.
    y := sqr(sqr(x)) – некрасивая конструкция.
    Лучше для возведения в степени использовать.
    y := Exp(4*Abs(Ln(x)).
    Прмечание 3.1.
    Хотя в данном примере топикстартеру, возможно проще воспользоваться некрасивым вариантом. :)

  25. 6
    Евгений Толмачев ответил:

    Примечание 2. Слово "function" означает начало определения функции! :)

  26. 5
    Антон Щиров ответил:

    function h(a, b: Real): Real;
    begin
    h := a / (1 + sqr(b)) + b / (1 + sqr(a));
    end;

    var
    S, T, z: Real;
    begin
    Readln(S);
    Readln(T);
    z := h(S, T) + Sqr(Sqr(h(S – T, S + T))) + h(2, 7);
    Writeln(z);
    end.

    Примечание: функция sqr(a) возвращает квадрат числа a

  27. 4
    Александр Алещенко ответил:

    ужис… на этом ещё пишут?

  28. 3
    Люблю Вадика ответил:

    у нас в вузе да=)

  29. 2
    Люблю Вадика ответил:

    //vkontakte.ru/photos.php?act=show&id=44658...

  30. 1
    Александр Ренев ответил:

    девушка пишите понятнее))

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.