[ C# / Java ] — начинающим: задаем вопросы

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by procedure, 2 Nov 2008.

  1. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    scrat
    Чем больше версия, тем больше функциональность! Xaml штука очень хорошая, позволяет делать любую нестандартную гуйню и достаточна проста в освоении(за неделю можно клепать формочки десятками). Рефакторинга будет не много, если и делать как в фаерфоксе, т.е. отдельным диалогом(добавить новый проект wpf и наладить связи легко, но мутить в одном проекте который наполовину win forms на половину ксамль - лишний геморой). Тем более если ты перейдёшь на 3.5, то проблем вообще никаких не будет, а вот если было бы наоборот(понизить версию), то стоило бы в некоторых местах задуматься.
     
  2. scrat

    scrat кодер

    Joined:
    8 Apr 2007
    Messages:
    625
    Likes Received:
    541
    Reputations:
    3
    список сделал средствами .net 2.0, на 3.5 переходить затратно будет
     
  3. BlincAttack

    BlincAttack Banned

    Joined:
    29 Sep 2009
    Messages:
    21
    Likes Received:
    39
    Reputations:
    0
    Не подскажите как можно сделать вывод времени в консоль в C#.То есть запускаешь консольное приложение и там выводится реальное время.(Например "Сейчас [hour:min:sec]").
     
  4. Irdis

    Irdis Elder - Старейшина

    Joined:
    6 Feb 2006
    Messages:
    248
    Likes Received:
    52
    Reputations:
    3
    Console.WriteLine("Сейчас:"+DateTime.Now);
     
  5. 4y4o

    4y4o Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    40
    Likes Received:
    2
    Reputations:
    0
    создаю форму
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;

    namespace myForm
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    CreateButton b = new CreateButton();
    }
    }
    }
    создаю отдельный класс
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    namespace myForm
    {
    public class CreateButton : Form1
    {
    public CreateButton()
    {
    Button b = new Button();
    Controls.Add(b);
    }

    }
    }
    по клику на кнопку должна по идее создаваться динамически ещё одна кнопка, но ничего не происходит, ошибок тоже не выдаёт.
     
  6. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    она не должна, ты унаследовал класс от класса Form, это не кнопка.

    public class CreateButton : Form1

    вот пример создания кнопки в runtime

    var button = new Button {Text = "Caption", Left = 100, Top = 10};
    Controls.Add(button);

    .NET Framework 3.5
     
  7. 4y4o

    4y4o Elder - Старейшина

    Joined:
    22 Jan 2007
    Messages:
    40
    Likes Received:
    2
    Reputations:
    0
    спасибо за ответ, но по моему очевидно, что мой вопрос звучит так: как из соседнего класса, динамически добавить кнопку в нашу базовую форму?
     
  8. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    ...

    private void button1_Click(object sender, EventArgs e)
    {
    CreateButton b = new CreateButton(this);
    }

    ....

    public CreateButton(Form form)
    {
    Button b = new Button();
    form.Controls.Add(b);
    }
     
  9. jecka3000

    jecka3000 Elder - Старейшина

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    у меня следующий вопрос, как в си шарпе обозначать позиции цифр, если мы не знаем, какое именно число: трехзначное,пятизначное ну и т.д.т.е. как бы часть зачачи звучала так:
    вывести на экран сами числа и сумму цифр, находящихся на нечетных позициях.
     
  10. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    зачитывай число как строку. потом по позициям в строке уже идёшь и в зависимости чет/нечет выдаёшь., проверка напримет через модуль 2 == 0
     
  11. jecka3000

    jecka3000 Elder - Старейшина

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    BrainDeaD, а можешь какой нить пример привести, а то голая теория не очень понятна....
     
  12. Nikituki

    Nikituki New Member

    Joined:
    14 Mar 2009
    Messages:
    19
    Likes Received:
    3
    Reputations:
    0
    Code:
    string a= n.ToString();
    int sum=0;
    for (int i=0; i<a.lenght; i++)
    {
    if ((i+1)/2>0)
    sum+=Convert.ToInt32(a[i]);
    }
    
    где n - данное число, sum - cумма его цифр на нечетных позициях, отсчет начиная со старшего разряда.
    Если нужен отсчет с младшего разряда, то нужно заменить 6 строку на
    Code:
    sum+=Convert.ToInt32(a[a.lenght-i]);
    
     
    #272 Nikituki, 19 Oct 2009
    Last edited: 19 Oct 2009
  13. Almest

    Almest New Member

    Joined:
    19 Oct 2009
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Ребята,может у кого - то завалялась,программка по теме: "Компьютерная диагностика неисправностей автомобилей?" или что-то такое?если у кого-то есть прошу помощи..буду благодарен.Спасибо за помощь..

    или

    Помогите пожалуйста может у кого - то такая программа есть: для разработка криптографической защиты данных.После запуска на выполнение программа должна по одному из алгоритмов, использующих генератор случайных чисел, зашифровать информацию, содержащуюся в указанном преподавателем файле, после чего записать файл под другим именем. Далее, по указанию пользователя, необходимо расшифровать записанный файл с помощью того же алгоритма.
     
  14. jecka3000

    jecka3000 Elder - Старейшина

    Joined:
    15 Mar 2008
    Messages:
    360
    Likes Received:
    54
    Reputations:
    4
    парни срочно, сижу на зачете. Организовал массив. Как перевернуть строки относительно серидины именно середины, НЕ ДИАгОНАЛИ
     
  15. new-sl

    new-sl New Member

    Joined:
    27 May 2009
    Messages:
    46
    Likes Received:
    0
    Reputations:
    -1
    подскажытем мине пожалуиста такую функцыю как в с++ cin.putback();
    if(isalpha(ch)) {
    cin.putback(ch);
    cin>>string_value;
    return curr_tok=NAME;
     
  16. Algol

    Algol New Member

    Joined:
    29 May 2002
    Messages:
    1,759
    Likes Received:
    4
    Reputations:
    0
    см StreamReader.Peek()
     
  17. Forcer

    Forcer Elder - Старейшина

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    java.io.PushbackInputStream
     
  18. Forcer

    Forcer Elder - Старейшина

    Joined:
    12 Apr 2007
    Messages:
    321
    Likes Received:
    98
    Reputations:
    12
    неправильный подход. считывай всю строку, а потом парси. для разбора математических выражений есть специальный алгоритм.
     
  19. new-sl

    new-sl New Member

    Joined:
    27 May 2009
    Messages:
    46
    Likes Received:
    0
    Reputations:
    -1

    етот калкулатор описан в книге от bjarne stroustrup она по с++ я просто перевел ето в жаву и столкнулся с множеством проблем

    Code:
    import java.util.*;
    
    
    public class calculator {
    	
    
    
    	static final int NAME=0, NUMBER=1, END=2,
    	PLUS='+', MINUS='-', MUL='*', DIV='/',
    	PRINT=';', ASSIGN='=', LP='(', RP=')', POW='^';
    
    
    	static int  curr_tok=PRINT;
    	static double number_value;
    	static String string_value;
    	static int no_of_errors=0;
    	
    
    
    	static Scanner cin=new Scanner(System.in);
    	
    
    	static double expr(boolean get)
    	{
    		
    		System.out.println("expr");
    		double left=term(get);
    
    		for(;;)
    			switch (curr_tok)
    			{
    			
    			case PLUS:
    				
    				left+=term(true);
    				
    				break;
    			case MINUS: 
    				left-=term(true);
    				break;
    
    			default: return left;
    			
    
    			}
    	}
    
    
    	static double term (boolean get)
    	{
    		System.out.println("term");
    		
    		double left=prim(get);
    
    		for(;;)
    			switch (curr_tok){
    				
    			case MUL: 
    				left *=prim(true);
    				break;
    			case DIV: 
    				 double d=prim(true);
    				
    					left/=d;
    					break;
    				
    				
    				
    			default :
    				return left;
    			}
    
    	}
    
    
    	static double prim (boolean get)
    	{
    		System.out.println("prim");
    		
    		if(get)
    			get_token();
    
    		switch (curr_tok){
    			case NUMBER :
    				{
    					double v=number_value;
    					System.out.println("number value"+number_value);
    					get_token();
    					return v;
    				}
    			
    
    			case MINUS: 
    				return -prim(true);
    
    			case LP:
    				{
    					double e=expr(true);
    					if(curr_tok!=RP)
    						return error(" ) erwartet");
    					get_token();
    					return e;
    				}
    
    			default:
    				return error("primary erwartet");
    		}
    
    	}
    
    	
    
    	static  int get_token()
    	{
    		System.out.println("get_token");
    		
    		
    		String token_string;
    		char token_char;
    		token_string=cin.next();
    	
    		
    		token_char=token_string.charAt(0);
    		
    		
    		System.out.println("String:"+token_string);
    		
    		
    
    
    
    		switch(token_char){
    			case 0:
    				return curr_tok=END;
    			case ';' :
    			case '*' :
    			case '/' :
    			case '+' :
    			case '-' :
    			case '(' :
    			case ')' :
    			case '=' :
    			
    				System.out.println("Token");
    				int ch=(int)token_char;
    				return curr_tok=ch;
    			case '0': case '1': case '2': case '3': case '4': 
    			case '5': case '6': case '7': case '8': case '9': 
    			case '.': 
    				
    				number_value=Double.parseDouble(token_string);
    				System.out.println("Number");
    				return curr_tok=NUMBER;
    				
    				
    			default: string_value=token_string;
    			
    			return curr_tok=NAME;
    
    			
    		}
    		
    
    	}
    
    
    
    	static double error(  String  ERROR_STRING)
    	{
    		System.out.println("error");
    		no_of_errors++;
    		
    		return 1;
    	}
    
    
    public static void main (String []argv)
    	{
    
    		
    			while(true)
    			{
    				System.out.println("main");
    				get_token();
    
    				if(curr_tok==END)
    					break;
    				
    				
    				System.out.println("RESULT"+expr(false));
    			}
    	}
    
    
    
    
    
    }
    
    


    вот в принципи сама прога я её патом убиру чтобы если припод будет искать тут как видеш постояно надо сапрашивать 1 символ ибо ты за 1 вызоф обрабативаеш 1 символ иначи некак а тут при простом счтение надо постоян нажимать пробел и писать следушьи символ мине ето неподходит надо чтоби в 1 строку считивая всю строку и патом парсить думаю непоидет
    если можеш приведи пример
     
    #279 new-sl, 30 Oct 2009
    Last edited: 30 Oct 2009
  20. new-sl

    new-sl New Member

    Joined:
    27 May 2009
    Messages:
    46
    Likes Received:
    0
    Reputations:
    -1
    я гдето читал что можно осушествит счтения по 1 символу спомощю подключения библиотеки jcurses но ниснаю так ли ето
     
Loading...
Similar Threads - Java начинающим задаем
  1. b3
    Replies:
    4
    Views:
    3,151