49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
1

Повторное выполнение программы

06.12.2009, 16:52. Показов 10393. Ответов 9
Метки нет (Все метки)

Всем привет, у меня такая проблема : есть код
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
using System;
class project
{
 
    public static void revers(int[,] c, int n, int m, int a)
    {
        int i, k;
        for (i = 0; i < (n / 2); i++)
        {
            k = c[i, a - 1];
            c[i, a - 1] = c[n - i - 1, a - 1];
            c[n - i - 1, a - 1] = k;
        }
 
    }
    //Пользователем забиваются элементы матрицы
    public static void schit(int[,] c, int n, int m)
    {
        int i, j;
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < m; j++)
            {
                Console.Write("\nВведите элемент матрицы [{0},{1}]: ", i + 1, j + 1);
                c[i, j] = int.Parse(Console.ReadLine());
            }
        }
    }
    public static void schit1(int[] e, int n)
    {
        int i;
        for (i = 0; i < n; i++)
 
            e[i] = int.Parse(Console.ReadLine());
 
 
    }
 
    //Вывод исходной матрицы
    public static void vivod(int[,] c, int n, int m)
    {
        int i, j;
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < m; j++)
                Console.Write("{0,3:d} ", c[i, j]);
            Console.WriteLine();
        }
    }
 
    public static void Main()
    {
        Console.Title = "Переворот в матрице заданного столбца";
        Console.BackgroundColor = ConsoleColor.DarkBlue;
        Console.ForegroundColor = ConsoleColor.White;
    Repeat:
 
        Console.Clear();
 
        int n, m, k;
        ConsoleKeyInfo rep;
        Console.Write("Введите количество строк: ");
        n = int.Parse(Console.ReadLine());
        Console.Write("\nВведите количество столбцов: ");
        m = int.Parse(Console.ReadLine());
        Console.Write("\nВведите номер столбца, который вы хотите перевернуть: ");
        k = int.Parse(Console.ReadLine());
 
        int[,] a = new int[n, m];
        schit(a, n, m);
 
        Console.WriteLine("\nИсходная матрица: \n");
        vivod(a, n, m);
        revers(a, n, m, k);
        Console.WriteLine();
        Console.WriteLine("Получившаяся: \n");
        vivod(a, n, m);
 
        Console.WriteLine("\nДля повтора нажмите Y, для выхода N");
        rep = Console.ReadKey(true);
        if (rep.Key == ConsoleKey.Y) goto Repeat;
        if (rep.Key == ConsoleKey.N) return;
    }
}
и я хотел бы сделать так, чтобы при вводе слова "Yes" программа запускалась заново, а при вводе "No" программа закрывалась, вместо простого ввода "Y" и "N"
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.12.2009, 16:52
Ответы с готовыми решениями:

Приостановить выполнение программы пока не сработает таймер n раз
Имеется вот такой обработчик события Tick: private void tmr_Tick(object sender,...

Выполнение произвольного кода при инсталяции программы средствами VS2008
1)необходимо произвести запись в реестр при установке программы; 2)выполнить при установке...

Запрос MySQL: выполнение программы останавливается на myCommand.ExecuteNonQuery()
void InsertRow() { MySqlCommand myCommand = new MySqlCommand(); MySqlTransaction...

Выполнение серверной exe-программы на стороне клиента
Здравствуйте. Мне нужно реализовать выполнение десктопного приложения, которое хранится на...

9
2092 / 1256 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
06.12.2009, 17:42 2
C#
1
2
3
4
Console.WriteLine("\nДля повтора наберите Yes, для выхода No");
        string rep = Console.ReadLine();
        if (rep == "Yes") goto Repeat;
        if (rep == "No") return;
А эту строку убери:
C#
1
ConsoleKeyInfo rep;
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
06.12.2009, 17:59  [ТС] 3
можете ещё объяснить
1) для чего метод schit1 , если в главной части программы на него ссылки нет и без него программа не запускается
2)почему, для вывода исходной и преобразованной матрицы здесь вызывается только один метод vivod(a, n, m);
3)почему для печати и перестановки матрицы и элементов, ссылки на методы записываются так
vivod(a, n, m); revers(a, n, m, k); schit(a, n, m);
вместо
vivod(с, n, m); revers(с, n, m, k); schit(с, n, m);
???
0
2092 / 1256 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
06.12.2009, 18:19 4
Цитата Сообщение от Helios1.618 Посмотреть сообщение
1)
schit1 - это метод для заполнения одномерного массива;
Цитата Сообщение от Helios1.618 Посмотреть сообщение
2)
А больше и не нужно - вы передаете в метод матрицу, а он ее только выводит на экран.
Цитата Сообщение от Helios1.618 Посмотреть сообщение
3)
Это переменные, которые используются внутри метода и как они объявлены внутри метода не имеет значения. Главное, чтобы в метод передавались переменные в той последовательности, в какой они используются в методе. Иначе программа будет или неправильно считать, или вообще работать откажется.
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
06.12.2009, 18:28  [ТС] 5
а что означает переменная "а" ?

Добавлено через 2 минуты
Цитата Сообщение от kirill29 Посмотреть сообщение
schit1 - это метод для заполнения одномерного массива;
но ведь в главной части программы нет ссылки на этот метод, то как он используется ?
0
2092 / 1256 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
06.12.2009, 18:36 6
а - это двумерный массив.

Цитата Сообщение от Helios1.618 Посмотреть сообщение
но ведь в главной части программы нет ссылки на этот метод, то как он используется ?
Никак - удалите его и все.

PS: эта программа вами написана?
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
06.12.2009, 18:50  [ТС] 7
но ведь "а" объявлена как простая переменная
C#
1
int a
а "с" объявлена как двумерный массив
C#
1
int[,] c
и до сих пор не понятно, почиму ссылка на метод пишется так -
C#
1
revers(a, n, m, k);
, а метод так
C#
1
public static void revers(int[,] c, int n, int m, int a)
ведь переменные насколько я понимаю в ссылке и в методе должны быть одинаковыми

Добавлено через 29 секунд
я написал только часть программы
0
2092 / 1256 / 170
Регистрация: 01.02.2009
Сообщений: 2,842
06.12.2009, 18:59 8
Цитата Сообщение от Helios1.618 Посмотреть сообщение
revers(a, n, m, k);
Попробуйте поменять местами а и n, и посмотрите что будет.
Когда вы пишете метод, вы указываете переменные, которыми он должен оперировать:
C#
1
public static void revers(int[,] c, int n, int m, int a)
И когда вызываете метод, то в качестве параметров указываете какие-то переменные, которые должны передаться в метод. При этом не имеет значения какие имена у этих переменных в разных методах.
C#
1
revers(a, n, m, k);
PS: интересно, как можно создать приложение и не понимать, как оно работает?
0
49 / 49 / 3
Регистрация: 15.11.2009
Сообщений: 372
06.12.2009, 19:36  [ТС] 9
я писал только интерфейс, повтор и печать

Добавлено через 26 минут
kirill29,
можете посоветовать другой способ , для того чтобы перевернуть столбец ?
0
CEO
Эксперт С++
2256 / 1246 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
07.12.2009, 02:34 10
Цитата Сообщение от kirill29 Посмотреть сообщение
C#
1
2
3
4
Console.WriteLine("\nДля повтора наберите Yes, для выхода No");
        string rep = Console.ReadLine();
        if (rep == "Yes") goto Repeat;
        if (rep == "No") return;
мне кажется с goto - немного некрасиво
Не лучше оформить в метод и после опроса Yes/No запускать его или заканчивать программу?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2009, 02:34

Выполнение программы
Я использую библиотеку MahApps. Там есть контрол прогресс ринг. Так вот, его можно включать и...

Странное выполнение программы
Здравствуйте. Написал приложение для отрисовки графиков на WPF. Есть список точек (values), хочу...

Остановить выполнение программы до определенного момента
подкажите кто-нить, как можно на время (точнее, пока юзер не нажмет на кнопку в отдельном эл.упр-я)...

Предусмотреть повторное выполнение программы используя циклический оператор
Не получается сделать повторное выполнение программы, нужно к примеру при нажатии на клавишу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.