Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.11.2012, 17:11   #1
DoItNonStop
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 3
По умолчанию Программа

Код:
using System;

class Calculation {
double a,b,p,s,sqr,sqrT,sqr2,sqrT2,sum,diff,diff2,div2,div,prod;
string str,str2,str3;
bool r,k,e;

  static double Geometry {
         s = a * b;
         p = 2 * (a + b);
         
         return s,p;
        }
 
  static double ArythemticsBasic {
    sum = a + b;
    diff = a -b ;
    diff2 = b - a;
    prod = a * b;
    div = a / b;
    div2= b / a;
    
    return sum,diff,diff2,prod,div,div2;
        }

  static double SqrAndSqrt {
      sqr = a*a;
      sqr2 = b*b;
      sqrT = Math.Sqrt(a);
      sqrT2 = Math.Sqrt(b);

      return sqr,sqr2,sqrT,sqrt2;
 }

 static void Main() {
   Console.WriteLine("Введите число a");
   a = (double) Console.ReadLine();

   Console.WriteLine("Введите число b");
   b = (double) Console.ReadLine();

   Console.WriteLine("Нужно найти площадь и периметр, учитывая a и b?(да/нет)");
str = Console.ReadLine();

   Console.WriteLine("Нужно найти сумму, разницу, частное и произведение? (да/нет)");
st2 = Console.ReadLine();

   Console.WriteLine("Нужно найти корни и квадраты a и b? (да/нет)");
str3 = Console.ReadLine();

if(str = "да") r = true;
else r = false;

if(str2 = "да") k = true;
else k = false;

if(str3 = "да") e = true;
esle e = false;

  (if r = true) {
Calculation.Geometry(a,b);
Console.WriteLine("Площадь равна {0}; периметр равен {1}", s, p);
}

  (if k = true) {
Calculation.ArythmeticsBasic(a,b);
Console.WriteLine("Сумма равна {0}; разница a - b = {1}; разница b - a = {2} ; частное a / b = {3}; частное b / a = {4}; произведение {5}", sum, diff, diff2, div, div2, prod);
}

  (if e = true) {
Calculation SqrAndSqrt(a,b);
Console.WriteLine("Квадрат a = {0}; квадрат b = {1}; корень из a = {2};
корень из b = {3}", sqr,sqr2,sqrT,sqrT2);
    }
Console.ReadKey();
}
Только начинаю изучать C#. Проблема только с переносом, какие значения возвращать, как переносить переменные и какие вносить параметры методу.

Последний раз редактировалось DoItNonStop; 28.11.2012 в 17:14.
DoItNonStop вне форума Ответить с цитированием
Старый 28.11.2012, 18:05   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

С переносом чего и куда?
Я думаю, что эта ссылка будет полезна для возвращения нескольких значений из метода.
Так же почитайте про оператор запятая. Он работает не так, как хотелось бы.
Привожу пример метода, каким он должен быть по логике вещей:
Код:
static void Geometry (double a, double b, out s, out p)
{
  s = a * b;
  p = 2 * (a + b);
}
Вызов потом должен быть такой:
Код:
if (r = true)
{
  Calculation.Geometry(a, b, out s, out p);
  Console.WriteLine("Площадь равна {0}; периметр равен {1}", s, p);
}
Рекомендую всё же начинать обучение с книжек, а не писать такой объёмный набор символов наугад (смысл писать несколько однотипных методов, если ни один из них даже не скомпилируется?).
pu4koff вне форума Ответить с цитированием
Старый 28.11.2012, 21:52   #3
DoItNonStop
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 3
По умолчанию

Спасибо большое! Книжку я читаю. [Руководство Шилдта]. Поясните, пожалуйста, почему ни один метод не скомпилируется?
DoItNonStop вне форума Ответить с цитированием
Старый 29.11.2012, 08:23   #4
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Нет круглых скобок:
Код:
  static double Geometry () {
         s = a * b;
         p = 2 * (a + b);
         
         return s,p;
        }
pu4koff вне форума Ответить с цитированием
Старый 29.11.2012, 13:48   #5
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Нет круглых скобок:
Код:
  static double Geometry () {
         s = a * b;
         p = 2 * (a + b);
         
         return s,p;
        }
1)лишнее / либо static double Geometry (double a,double b)
2)метод должен возвращать 1 значение
Lime вне форума Ответить с цитированием
Старый 30.11.2012, 21:31   #6
DoItNonStop
Новичок
Джуниор
 
Регистрация: 28.11.2012
Сообщений: 3
По умолчанию

Все, уже разобрался с книжкой. Примерно так должно быть?
Но еще один вопрос: можно ли создавать экземпляр как в моем случае? (конец кода):
Код:

using System;

class Demonstration {
public int a;
public int b;
public int s;
public int p;

public Initiz(int x, i) {
a = x;
b = i;
}

static int Area() {
s = a * b;
return s;
}

static int Perimetr() {
p:= a + b;
return p;
}

static void Vvod() {
int x,i;
Console.WriteLine("Введите a");
x = Console.ReadLine();
Console.WriteLine("Введите b");
i = Console.ReadLine();

Demonstration calculation = new Demonstration(x,i);

Console.WriteLine("Периметр равен {0}, площадь равна {1}", calculation.Area(), calculation.Perimetr());
   }
}

Последний раз редактировалось DoItNonStop; 30.11.2012 в 21:31. Причина: Забыл тегануть код
DoItNonStop вне форума Ответить с цитированием
Старый 30.11.2012, 21:48   #7
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

никогда не пиши такое:
Код:
public int a;
public int b;
public int s;
public int p;
Сразу приучайся использовать свойства (потом понятно будет зачем они нужны и всё такое):
Код:
public int A {get; set;}
public int B {get; set;}
public int S {get; set;}
public int P {get; set;}
Код только этот опять не скомпилируется. Методы статические, а в них используются члены объекта, которого нет. Area и Perimetr не должны быть статическими. Остальное вроде синтаксически верно (в периметре только еще опечатка, типичная для начала перехода с делфей). Так же не стоит забывать про область видимости классов
Код:
public class Demonstration
В данном коде оно может и не важно, но в целом тоже частая ошибка при переходе с делфей.
pu4koff вне форума Ответить с цитированием
Старый 03.12.2012, 14:13   #8
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

Код:
public Initiz(int x,int i)
Если это конструктор то
Код:
public Demonstration (int x, int i) {
this.a = x;
this.b = i;
}
Код:
x = Int32.Parse(Console.ReadLine());
i = Int32.Parse(Console.ReadLine());

Последний раз редактировалось Lime; 03.12.2012 в 14:17.
Lime вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа как программа. вопрос leonidsm Общие вопросы C/C++ 5 02.10.2012 21:30
Программа с применением записей и программа с применение множеств smert99 Помощь студентам 0 16.06.2011 23:14
Программа открыается если есть другая программа. bookkc Паскаль, Turbo Pascal, PascalABC.NET 12 14.10.2009 20:09
[PASCAL]Программа создания файла, программа обработки файла Виколяшка Фриланс 7 23.09.2009 17:38