Лабораторные и курсовые работы по информатике

Правила форума
Раздел для предложений товаров и услуг
Аватара пользователя
Mabus
Забанен
Сообщения: 5282
Зарегистрирован: 26 фев 2007, 14:49
Пол: мужской
Семейное положение: свободен
Благодарил (а): 37 раз
Поблагодарили: 135 раз
Контактная информация:

Re: Лабораторные и курсовые работы по информатике

#16

Непрочитанное сообщение Mabus » 26 апр 2009, 17:28

Да это школьная олимпиадная задача по программированию, я ее решал еще будучи школьником...
Я начал спорить? Значит, скорее всего, я прав.
Государство недалекого будущего.

Аватара пользователя
FonDrakes
Сообщения: 3182
Зарегистрирован: 11 фев 2008, 23:56
Пол: мужской
Благодарил (а): 37 раз
Поблагодарили: 83 раза
Контактная информация:

Re: Лабораторные и курсовые работы по информатике

#17

Непрочитанное сообщение FonDrakes » 26 апр 2009, 17:49

Напишите мне за бутылку пива синтаксический анализатор математических выражений (калькулятор) на Java. За ещё одну бутылку пива объясните как оно всё это работает :D
Изображение

Аватара пользователя
Malicious Penetrator
Автор темы
Сообщения: 502
Зарегистрирован: 24 апр 2009, 22:59
Благодарил (а): 18 раз
Поблагодарили: 32 раза

Re: Лабораторные и курсовые работы по информатике

#18

Непрочитанное сообщение Malicious Penetrator » 26 апр 2009, 18:02

В олимпиадах без гугла не обойтись, задачки очень специфичны) я говорил только то что в голову приходило. Что ж, расскажи теперь решение.

Аватара пользователя
Mabus
Забанен
Сообщения: 5282
Зарегистрирован: 26 фев 2007, 14:49
Пол: мужской
Семейное положение: свободен
Благодарил (а): 37 раз
Поблагодарили: 135 раз
Контактная информация:

Re: Лабораторные и курсовые работы по информатике

#19

Непрочитанное сообщение Mabus » 26 апр 2009, 18:02

FonDrakes писал(а):Напишите мне за бутылку пива синтаксический анализатор математических выражений (калькулятор) на Java. За ещё одну бутылку пива объясните как оно всё это работает :D

Не обляпайся: :D

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

package supe;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class soop extends Applet implements ActionListener {

  float num;
  float buf;
  int code;
   String str;
  boolean point;
  Button but[];

  public void init()
  {
    num=0;
    buf=0;
    code=0;
    str="0";
    point=false;

    but=new Button[17];

    Panel pn=new Panel(new GridLayout(5,4,2,2));

    but[0]=new Button("0");
    but[0].addActionListener(this);

    pn.add(but[0]);

  but[1]=new Button("1");
  but[1].addActionListener(this);

  pn.add(but[1]);

  but[2]=new Button("2");
  but[2].addActionListener(this);

  pn.add(but[2]);

  but[3]=new Button("3");
  but[3].addActionListener(this);

  pn.add(but[3]);

  but[4]=new Button("4");
  but[4].addActionListener(this);

  pn.add(but[4]);

  but[5]=new Button("5");
  but[5].addActionListener(this);

  pn.add(but[5]);

  but[6]=new Button("6");
  but[6].addActionListener(this);

  pn.add(but[6]);

   but[7]=new Button("7");
  but[7].addActionListener(this);

  pn.add(but[7]);

   but[8]=new Button("8");
  but[8].addActionListener(this);

  pn.add(but[8]);

   but[9]=new Button("9");
  but[9].addActionListener(this);
  pn.add(but[9]);

   but[12]=new Button(".");
  but[12].addActionListener(this);
  pn.add(but[12]);

  but[11]=new Button("+");
  but[11].addActionListener(this);
  pn.add(but[11]);

  but[13]=new Button("=");
  but[13].addActionListener(this);
  pn.add(but[13]);

   but[10]=new Button("-");
  but[10].addActionListener(this);
  pn.add(but[10]);

   but[14]=new Button("*");
  but[14].addActionListener(this);

  pn.add(but[14]);

   but[15]=new Button("/");
  but[15].addActionListener(this);
  pn.add(but[15]);

   but[16]=new Button("C");
  but[16].addActionListener(this);
  pn.add(but[16]);

  add(pn);
  }

  public void paint(Graphics gr){
    gr.drawString(str,10,15);
  }

  public void actionPerformed(ActionEvent e){
    num=new Float(str).floatValue();
    if(e.getSource()==but[0])zero();
    if(e.getSource()==but[1])chislo("1");
    if(e.getSource()==but[2])chislo("2");
    if(e.getSource()==but[3])chislo("3");
    if(e.getSource()==but[4])chislo("4");
    if(e.getSource()==but[5])chislo("5");
    if(e.getSource()==but[6])chislo("6");
    if(e.getSource()==but[7])chislo("7");
    if(e.getSource()==but[8])chislo("8");
    if(e.getSource()==but[9])chislo("9");
    if(e.getSource()==but[10]){code=1;buf=num;str="0";}// -1
    if(e.getSource()==but[11]){code=2;buf=num;str="0";}// +2
    if(e.getSource()==but[14]){code=3;buf=num;str="0";}// *3
    if(e.getSource()==but[15]){code=4;buf=num;str="0";}// /4
    if(e.getSource()==but[12])pnt();
    if(e.getSource()==but[16])sbros();
    if(e.getSource()==but[13])result();


  }

  private void result(){
    num=new Float(str).floatValue();
    if(code==1)num=buf-num;
    if(code==2)num=buf+num;
    if(code==3)num=buf*num;
    if(code==4 && num!=0)num=buf/num;
    else str="delenie na nol - nelzya";
    str=str.valueOf(num);
    repaint();
  }

  private void sbros(){
    num=0;
    buf=0;
    code=0;
    str="0";
    point=false;
    repaint();
  }

  private void zero(){
    if(str!="0")str=str+"0";
    repaint();
  }

  private void chislo(String s){
    if(str=="0")str=s;
    else str=str+s;
    repaint();
  }

  private void pnt(){
    if(point == false)str=str+".";
    point=true;
    repaint();
  }


}



Добавлено спустя 6 минут 29 секунд:
Malicious Penetrator писал(а):В олимпиадах без гугла не обойтись, задачки очень специфичны) я говорил только то что в голову приходило. Что ж, расскажи теперь решение.

В олимпиадах нет времени на гуглы. Решение задачи 3-5 минут и часы отладки =)))
Решение простое:
1) Создание списка протыканий с удалением одинаковых элементов. SUM=0;
2-5) В цикле проходим все протыкания.
3) m=N
4 ) Протыкание проверяем на пересечение с другими протыканиями которые уже прошли в цикле. при совпадении уменьшаем m на один.
5) SUM=SUM + m;
Я начал спорить? Значит, скорее всего, я прав.
Государство недалекого будущего.

Аватара пользователя
Malicious Penetrator
Автор темы
Сообщения: 502
Зарегистрирован: 24 апр 2009, 22:59
Благодарил (а): 18 раз
Поблагодарили: 32 раза

Re: Лабораторные и курсовые работы по информатике

#20

Непрочитанное сообщение Malicious Penetrator » 26 апр 2009, 18:19

понятно. Спасибо что поделился опытом :-)

Аватара пользователя
FonDrakes
Сообщения: 3182
Зарегистрирован: 11 фев 2008, 23:56
Пол: мужской
Благодарил (а): 37 раз
Поблагодарили: 83 раза
Контактная информация:

Re: Лабораторные и курсовые работы по информатике

#21

Непрочитанное сообщение FonDrakes » 26 апр 2009, 18:59

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

Добавлено спустя 34 минуты 48 секунд:
+ ещё из кода видно, что это простой калькулятор без анализа вводимой строки
Изображение

Аватара пользователя
Mabus
Забанен
Сообщения: 5282
Зарегистрирован: 26 фев 2007, 14:49
Пол: мужской
Семейное положение: свободен
Благодарил (а): 37 раз
Поблагодарили: 135 раз
Контактная информация:

Re: Лабораторные и курсовые работы по информатике

#22

Непрочитанное сообщение Mabus » 26 апр 2009, 20:22

FonDrakes, не вижу сложностей =))) если руки от туда торчат написать это не проблема :P
Я начал спорить? Значит, скорее всего, я прав.
Государство недалекого будущего.

Аватара пользователя
nexuos
Funny Cat
Сообщения: 1327
Зарегистрирован: 12 июл 2007, 19:45
Пол: мужской
Благодарил (а): 217 раз
Поблагодарили: 21 раз

Re: Лабораторные и курсовые работы по информатике

#23

Непрочитанное сообщение nexuos » 26 апр 2009, 20:54

FonDrakes писал(а):клиент-серверный калькулятор

:shock: , эт как?

Аватара пользователя
FonDrakes
Сообщения: 3182
Зарегистрирован: 11 фев 2008, 23:56
Пол: мужской
Благодарил (а): 37 раз
Поблагодарили: 83 раза
Контактная информация:

Re: Лабораторные и курсовые работы по информатике

#24

Непрочитанное сообщение FonDrakes » 26 апр 2009, 21:03

Mabus
Да вот пока что голову ломаю и никак.

nexuos
Это только в извращённых фантазиях препода :) Шутка. Короче формулы вводить на клиенте, а сам движок с просчётом на сервере.
Изображение

Аватара пользователя
Malicious Penetrator
Автор темы
Сообщения: 502
Зарегистрирован: 24 апр 2009, 22:59
Благодарил (а): 18 раз
Поблагодарили: 32 раза

Re: Лабораторные и курсовые работы по информатике

#25

Непрочитанное сообщение Malicious Penetrator » 26 апр 2009, 21:07

А нафига тебе клиент? сверстай в хтмл страничку, прикрути туда движок калькулятора и БД с результатами.

Аватара пользователя
FonDrakes
Сообщения: 3182
Зарегистрирован: 11 фев 2008, 23:56
Пол: мужской
Благодарил (а): 37 раз
Поблагодарили: 83 раза
Контактная информация:

Re: Лабораторные и курсовые работы по информатике

#26

Непрочитанное сообщение FonDrakes » 26 апр 2009, 22:29

Malicious Penetrator
У меня есть HTML страничка с вполне нормальным калькулятором, который меня устраивает почти на все 100%. Написан он вроде как на javascript. Но я дуб в этих вопросах и не могу сказать что javascript и java это одно и тоже, а следовательно страничка не прокатит :)
Изображение

Аватара пользователя
nexuos
Funny Cat
Сообщения: 1327
Зарегистрирован: 12 июл 2007, 19:45
Пол: мужской
Благодарил (а): 217 раз
Поблагодарили: 21 раз

Re: Лабораторные и курсовые работы по информатике

#27

Непрочитанное сообщение nexuos » 26 апр 2009, 22:43

FonDrakes писал(а):Короче формулы вводить на клиенте, а сам движок с просчётом на сервере.

Жесть, ну это вполне просто реализуемо, но попахивает извращением!

Аватара пользователя
Mabus
Забанен
Сообщения: 5282
Зарегистрирован: 26 фев 2007, 14:49
Пол: мужской
Семейное положение: свободен
Благодарил (а): 37 раз
Поблагодарили: 135 раз
Контактная информация:

Re: Лабораторные и курсовые работы по информатике

#28

Непрочитанное сообщение Mabus » 26 апр 2009, 22:56

FonDrakes писал(а):не могу сказать что javascript и java это одно и тоже
, и слава богу... а то уже совсем дуболомы пошли...
А насчет вычислений на строне сервера ты уточни... что-то тут не то. Учитывая специфику java выполняется она на клиентской машине. А вот доступ к БД с формулами это уже реализация клиента-серверного приложения.
Я начал спорить? Значит, скорее всего, я прав.
Государство недалекого будущего.

Аватара пользователя
FonDrakes
Сообщения: 3182
Зарегистрирован: 11 фев 2008, 23:56
Пол: мужской
Благодарил (а): 37 раз
Поблагодарили: 83 раза
Контактная информация:

Re: Лабораторные и курсовые работы по информатике

#29

Непрочитанное сообщение FonDrakes » 27 апр 2009, 09:31

Mabus
Базы и сеть это просто препод хочет чтоб мы в своих курсовых показали работу с сетью и с базами. У меня попался калькулятор, вот и вышло извращение :)
Изображение


Вернуться в «Обучение, тренинги, чертежи»