Страница 1 из 1

shell и синус

Добавлено: 2009-05-25 18:30:50
RusBiT
Требуется в консоли построить график синуса, к примеру, y=2sin(x) .

Re: shell и синус

Добавлено: 2009-05-25 19:00:35
zg
RusBiT писал(а):Требуется в консоли построить график синуса, к примеру, y=2sin(x) .
шикарные у тебя запросы :smile: но в принципе можно

Re: shell и синус

Добавлено: 2009-05-25 19:23:02
RusBiT
ну мне пришло в голову только через цикл, увеличивать/уменьшать отступы на каждой строке

Re: shell и синус

Добавлено: 2009-05-25 21:00:15
zg

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

                                        *********
                                      **    |    **
                                     *      |      *
                                    *       |       *
                                  **        |        **
                                 *          |          *
                                *           |           *
                               *            |            *
                              *             |             *
*                            *              |              *
*                           *               |               *
-*-------------------------*----------------+----------------*------------------
  *                       *                 |                 *
   **                   **                  |                  **
     *                 *                    |                    *
      *               *                     |                     *
       *             *                      |                      *
        **         **                       |                       **         *
          **** ****                         |                         **** ****
              *                             |                             *
zg#
:ROFL: я маниак :smile:

Re: shell и синус

Добавлено: 2009-05-26 5:19:14
RusBiT
и как тебе это удалось?
Я только прямую смог посмтроить :D

Re: shell и синус

Добавлено: 2009-05-26 7:54:49
zg
предыдущий график был не синус, а косинус -))) с осями напутал :oops: . Зато этот самый настоящий синус!!!
sin.PNG
sin.PNG (6.61 КБ) 2396 просмотров

Re: shell и синус

Добавлено: 2009-05-26 7:57:58
zg
RusBiT писал(а):и как тебе это удалось?
школьная математика и практика построения графиков на ZX-Spectrum :-D

Это основной скрипт, который график строит

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

#!/bin/sh

writeAbscise() {
  i=0;
  while [ $i -lt $2 ];
  do
    at $i $1 '-'
    i=$(($i+1))
  done
  at $(($2-1)) $1 '>'
  at $(($2-1)) $(($1+1)) 'x'
}

writeOrdinate() {
  i=0;
  while [ $i -lt $1 ];
  do
    at $2 $i '|'
    i=$(($i+1))
  done
  at $2 0 '^'
  at $(($2+2)) 0 'y'
}

writeCoord() {
  writeOrdinate $1 $(($2/2))
  writeAbscise $(($1/2)) $2
  at $(($2/2)) $(($1/2)) '+'
  at $(($2/2+2)) $(($1/2+1)) 0
}

writeFx() {
  writeCoord $1 $2
  i=0
  while [ $i -lt $(($2-1)) ];
  do
    Y=`./1.pl $(($i-$2/2)) $(($2/2)) $(($1/2-2))`
    Y=$(($1/2-$Y))
    [ $Y -ge $1 ] && Y=$(($1-1))
    [ $Y -lt 0  ] && Y=0;
    at $i $Y '*'
    i=$(($i+1))
  done
  at 0 $1
}

at() {
  echo -e "\033[$2;$1H$3"
}

clear
at 4 2 'y=2sin(x)'
writeFx 23 80
А это вспомогательный, который расчёты делает (1.pl)

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

#!/usr/bin/perl -w

$PI=3.14159265358979323846;

print int(sin($ARGV[0]/$ARGV[1] * $PI)*$ARGV[2]), "\n";

Re: shell и синус

Добавлено: 2009-05-27 9:21:35
mazay
Короче ряды Тейлора, представляющие собой бесконечную сумму некоторых произведений аргумента. Количество слагаемых выбирается исходя из требуемой точности.
Изображение
http://ru.wikipedia.org/wiki/%D0%A2%D0% ... 0%BD%D1%81

Re: shell и синус

Добавлено: 2009-05-27 9:30:51
zg
mazay писал(а):Короче ряды Тейлора
гм... это к чему? :smile:

Re: shell и синус

Добавлено: 2009-05-27 10:40:46
Alex Keda
к зайцам...

Re: shell и синус

Добавлено: 2009-05-27 11:19:04
terminus
ряды тейлора - это для приближенного (достаточно точного) вичисления значения сложной функции. Но тут оно по-ходу нафиг ненадо... :smile:

Re: shell и синус

Добавлено: 2009-05-27 11:47:17
zg
умел бы шелл работать с дробными числами, можно было бы и ряд применить, а так проще перл припахать :smile: