Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/30: Рейтинг темы: голосов - 30, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281

Адресная книга в консоли - как улучшить приложенный код

07.01.2012, 00:56. Показов 6835. Ответов 62
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот задание:

Во всех вариантах предусматривается вначале создание какого-то алгоритма обработки заданной сущности (например, разбор строки с сущностью и, наоборот, формирование строкового представления сущности и другие, в зависимости от варианта), затем создание функций, модулей и конкретного класса. Рекомендуется привести исходный процедурный вариант реализации алгортима, а затем - вариант с классом.
Адреса (страна, город, улица и пр.)
Можно использовать правила формирования алресов согласно классификатору КЛАДР (хотя бы примерно). Для каждого элемента адреса используются свои сокращения (р-н, ул, кв и прочее). Основные алгоритмы - разбор строки с выделением и проверкой адреса, вывод адреса в строку, с разной степенью подробности (пустые части адреса не выводить либо - выводить все и пр.).

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

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
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Zapis tmp = new Zapis();
            Console.WriteLine("введите адрес: улица, дом, квартира, фамилия");
            tmp = razbor.razbienie(Console.ReadLine());
            List<Zapis> records = new List<Zapis>();
            records.Add(tmp);
 
            Console.WriteLine("Please input first name for search\n");
            string searchName = Console.ReadLine();
 
            for (int i = 0; i < records.Count; i++)
            {
                if (records[i].firstName == searchName)
                {
                    Console.WriteLine("Фамилия:" + records[i].firstName);
                    Console.WriteLine("Улица: " + records[i].street);
                    Console.WriteLine("Дом: " + records[i].numberOfHome.ToString());
                    Console.WriteLine("Квартира: " + records[i].numberOfRoom.ToString());
 
                    Console.ReadKey();
                }
            }           
        }
    }
}
класс запись
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    public class Zapis
    {
        public string street;
        public int numberOfHome;
        public int numberOfRoom;
        public string firstName;
    }
}
}
разбор строки

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    static class  razbor
    {
        public static Zapis razbienie(string vvedennayaStroka)
        {
            char [] X = { ',', ' ' };
            string[] segments;
            segments = vvedennayaStroka.Split(X);
            Zapis z = new Zapis();
            z.street = segments[0];
            z.numberOfHome = Convert.ToInt32(segments[1]);
            z.numberOfRoom = Convert.ToInt32(segments[2]);
            z.firstName = segments[3];
            return z;
        }
    }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.01.2012, 00:56
Ответы с готовыми решениями:

Outlook 2010. Адресная книга. Как поставить фамилии на первое место ?
В адресной книге Outlook вечная путаница имен и фамилий. Некоторые контакты предтставлены Фамилия - Имя, а некоторые Имя-...

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

Адресная книга
Доброе утро. Итак, сначала ситуация, в кратце: Есть Webshere Portal 6.0.1 и Domino Server 7.0.1. Портал настроен на аутентификацию...

62
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
07.01.2012, 23:01
Студворк — интернет-сервис помощи студентам
Но разве мы не можем реализовать консольный ввод данных
Да, конечно можем. В принцпе у тебя уже есть реализация т.е. осталось только прикрутить ее сюда.

Однако, мне кажется что более разумно сначала чтение запись данных в базу или файл. А затем сделать парсер который будет понимать команды введенные с консоли например:
>>ShowAllRecords // вывести все записи

>>GetRecordsByLastname
>> Введите фамилию // Ответ программы
>>Пупкин // Вывести все записи по гражданам с фамилией Пупкин

AddRecord
>> Введите название улицы // Ответ программы
>> Тараканова
>> Введите номер дома
>> 1
>> Введите номер квартиры
>> 19
>> Введите фамилию
>> Синебрюхов
1
16 / 16 / 9
Регистрация: 07.10.2011
Сообщений: 77
Записей в блоге: 1
08.01.2012, 06:21
Это разбиение можно просто в отдельную функцию сделать. Тогда основной класс программы будет выглядеть так:
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
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        private static Zapis razbienie(string vvedennayaStroka)
        {
            char [] X = { ',', ' ' };
            string[] segments;
            segments = vvedennayaStroka.Split(X);
            Zapis z = new Zapis();
            z.street = segments[0];
            z.numberOfHome = Convert.ToInt32(segments[1]);
            z.numberOfRoom = Convert.ToInt32(segments[2]);
            z.firstName = segments[3];
            return z;
        }
        static void Main(string[] args)
        {
            Console.WriteLine("введите адрес: улица, дом, квартира, фамилия");
            Zapis tmp = razbienie(Console.ReadLine());
            List<Zapis> records = new List<Zapis>();
            records.Add(tmp);
 
            Console.WriteLine("Please input first name for search\n");
            string searchName = Console.ReadLine();
 
            for (int i = 0; i < records.Count; i++)
            {
                if (records[i].firstName == searchName)
                {
                    Console.WriteLine("Фамилия:" + records[i].firstName);
                    Console.WriteLine("Улица: " + records[i].street);
                    Console.WriteLine("Дом: " + records[i].numberOfHome.ToString());
                    Console.WriteLine("Квартира: " + records[i].numberOfRoom.ToString());
 
                    Console.ReadKey();
                }
            }           
        }
    }
}
Убрал в коде пару лишних строк.
1
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
08.01.2012, 09:40  [ТС]
Теперь запутался. Сейчас у нас на подходе две разных реализации?
Одна - слегка модернизированный мой код, вторая - полностью переделанный. Хотелось бы, что бы до логического конца дошли оба.
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
08.01.2012, 11:53
Если хочется просто восстановить функционал, без добавления сохранения состояния и разбора команд, то в главный класс ( Program / MainClass ) следует изменить следующим образом:

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
 class MainClass
    {
 
        public static void Main()
        {
            List<AddressBookRecord> records = new List<AddressBookRecord>();
            
            records.Add(new AddressBookRecord( "Смоленская", 16, 12, "Пупкин"));
            records.Add(new AddressBookRecord( "Пушкина", 5, 95, "Селедкин"));
            records.Add(new AddressBookRecord( "Володарского", 33, 63, "Краснов"));
            records.Add(new AddressBookRecord( "Краевая", 8, 92, "Стрелецкий"));
            records.Add(new AddressBookRecord( "Бехтерева", 14, 11, "Пупкин"));
 
            records.AddRange(GetRecords());
 
            Console.WriteLine( "Все записи" );
 
            foreach (AddressBookRecord record in records)
            {
                Console.WriteLine(record);
            }
            Console.WriteLine();
 
            Console.WriteLine("Адреса граждан с фамилией Пупкин");
            Console.WriteLine();
            List<AddressBookRecord> foundRecords = GetRecordsByLastName("Пупкин", records);
 
            foreach (AddressBookRecord record in foundRecords)
            {
                Console.WriteLine(record);
            }
 
            Console.ReadLine();    
        }
 
        private static List<AddressBookRecord> GetRecordsByLastName(string lastName, List<AddressBookRecord> records)
        {
            List<AddressBookRecord> result = new List<AddressBookRecord>();
            foreach (AddressBookRecord record in records)
            {
                if (record.LastName == lastName)
                {
                    result.Add(record);
                }
            }
            return result;
        }
 
        private static List<AddressBookRecord> GetRecords()
        {
            List<AddressBookRecord> result = new List<AddressBookRecord>();
            Console.WriteLine("Добавления записи введите AddRecord");
            while (Console.ReadLine() == "AddRecord")
            {
                Console.WriteLine("Введите название улицы");
                string street = Console.ReadLine();
                Console.WriteLine("Введите номер дома");
                int houseNumber;
                while (!Int32.TryParse(Console.ReadLine(), out houseNumber))
                {
                    Console.WriteLine("Попробуйте еще раз");
                }
                Console.WriteLine("Введите номер квартиры");
                int apartmentNumber;
                while (!Int32.TryParse(Console.ReadLine(), out apartmentNumber))
                {
                    Console.WriteLine("Попробуйте еще раз");
                }
                Console.WriteLine("Введите фамилию владельца");
                string lastName = Console.ReadLine();
 
                result.Add(new AddressBookRecord(street, houseNumber, apartmentNumber, lastName));
            }
            return result;
        }
 
    }
Хотелось бы, что бы до логического конца дошли оба.
Зачем?
1
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
08.01.2012, 12:41  [ТС]
интересны две реализации.
А вообще все таки надо сделать ввод данных с клавы по запросу проги, а не внутри кода. И разбор строки применить.
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
08.01.2012, 17:38
А вообще все таки надо сделать ввод данных с клавы по запросу проги, а не внутри кода. И разбор строки применить.
Уверен? Чтож будь по твоему.

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
private static List<AddressBookRecord> GetRecords()
        {
            List<AddressBookRecord> result = new List<AddressBookRecord>();
 
            
            while ( true )
            {
                Console.WriteLine("введите адрес: улица, дом, квартира, фамилия");
                string userInput = Console.ReadLine();
                
                // Цикл завершается если введена пустая строка
                if (userInput == "")
                {
                    break;
                }
 
                string[] splitInput = userInput.Split( ' ' );
                string street = splitInput[0];
                int houseNumber = Int32.Parse(splitInput[1]);
                int apartmentNumber = Int32.Parse(splitInput[2]);
                string lastName = splitInput[3];
                
                result.Add(new AddressBookRecord(street, houseNumber, apartmentNumber, lastName));
            }
            return result;
        }
Для того, чтобы понять почему мне этот метод нравится куда меньше, чем предложеный выше, напиши проверки.
0
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
08.01.2012, 18:53  [ТС]
И куда теперь этот метод?
Относительно первоначального моего кода?
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
08.01.2012, 18:57
В смысле куда?
Старая реализация => новая реализация.
И проверки добавь, а то работа приложения будет состоять из выкидывания исключений.
1
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
08.01.2012, 19:01  [ТС]
Я имею ввиду что у меня была прога, класс запись и класс разбор строки. Что теперь осталось?
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
08.01.2012, 19:16
Не очень понял вопрос, ну да ладно.

У меня приложение выглядит так:

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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
 
namespace justForFun
{
    class MainClass
    {
 
        public static void Main()
        {
            List<AddressBookRecord> records = new List<AddressBookRecord>();
 
            records.Add(new AddressBookRecord("Смоленская", 16, 12, "Пупкин"));
            records.Add(new AddressBookRecord("Пушкина", 5, 95, "Селедкин"));
            records.Add(new AddressBookRecord("Володарского", 33, 63, "Краснов"));
            records.Add(new AddressBookRecord("Краевая", 8, 92, "Стрелецкий"));
            records.Add(new AddressBookRecord("Бехтерева", 14, 11, "Пупкин"));
 
            records.AddRange(GetRecords());
 
            Console.WriteLine( "Все записи" );
 
            foreach (AddressBookRecord record in records)
            {
                Console.WriteLine(record);
            }
            Console.WriteLine();
 
            Console.WriteLine("Адреса граждан с фамилией Пупкин");
            Console.WriteLine();
            List<AddressBookRecord> foundRecords = GetRecordsByLastName("Пупкин", records);
 
            foreach (AddressBookRecord record in foundRecords)
            {
                Console.WriteLine(record);
            }
 
            Console.ReadLine();    
        }
 
        private static List<AddressBookRecord> GetRecordsByLastName(string lastName, List<AddressBookRecord> records)
        {
            List<AddressBookRecord> result = new List<AddressBookRecord>();
            foreach (AddressBookRecord record in records)
            {
                if (record.LastName == lastName)
                {
                    result.Add(record);
                }
            }
            return result;
        }
 
        private static List<AddressBookRecord> GetRecords()
        {
            List<AddressBookRecord> result = new List<AddressBookRecord>();
 
            
            while ( true )
            {
                Console.WriteLine("введите адрес: улица, дом, квартира, фамилия");
                string userInput = Console.ReadLine();
                
                // Цикл завершается если введена пустая строка
                if (userInput == "")
                {
                    break;
                }
 
                string[] splitInput = userInput.Split( ' ' );
                string street = splitInput[0];
                int houseNumber = Int32.Parse(splitInput[1]);
                int apartmentNumber = Int32.Parse(splitInput[2]);
                string lastName = splitInput[3];
                
                result.Add(new AddressBookRecord(street, houseNumber, apartmentNumber, lastName));
            }
            
            /*while (Console.ReadLine() == "AddRecord")
            {
                Console.WriteLine("введите адрес: улица, дом, квартира, фамилия");
                Console.WriteLine("Введите название улицы");
                string street = Console.ReadLine();
                Console.WriteLine("Введите номер дома");
                int houseNumber;
                while (!Int32.TryParse(Console.ReadLine(), out houseNumber))
                {
                    Console.WriteLine("Попробуйте еще раз");
                }
                Console.WriteLine("Введите номер квартиры");
                int apartmentNumber;
                while (!Int32.TryParse(Console.ReadLine(), out apartmentNumber))
                {
                    Console.WriteLine("Попробуйте еще раз");
                }
                Console.WriteLine("Введите фамилию владельца");
                string lastName = Console.ReadLine();
 
                result.Add(new AddressBookRecord(street, houseNumber, apartmentNumber, lastName));
            }*/
            return result;
        }
 
    }
 
    class AddressBookRecord : Object// Название класса наверное следует заменить
    {
        public string Street { get; private set; }
        public int HouseNumber { get; private set; }
        public int ApartmentNumber { get; private set; }
        public string LastName { get; private set; } // Фамилия это таки Lastname
        public AddressBookRecord(string street, int houseNumber, int apartmentNumber, string lastName)
        {
            Street = street;
            HouseNumber = houseNumber;
            ApartmentNumber = apartmentNumber;
            LastName = lastName;
        }
        // Добавил метод ToString
        override public string ToString()
        {
            string PersonInfo = "Фамилия \t" + LastName + "\n"
                     + "Улица \t\t" + Street + "\n" // Выведи все параметры
                     + "Номер дома \t" + HouseNumber + "\n"
                     + "Номер квартиры \t" + ApartmentNumber + "\n";
            return PersonInfo;
        }
    }
}
Структуру приложения можно улучшить если добавить класс AddressBook
0
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
08.01.2012, 19:23  [ТС]
В таком виде оно тут:
C#
1
int houseNumber = Int32.Parse(splitInput[1]);
после ввода информации выдает ошибку
0
98 / 81 / 16
Регистрация: 14.01.2011
Сообщений: 438
08.01.2012, 19:28
Цитата Сообщение от nikozavr Посмотреть сообщение
В таком виде оно тут:
int houseNumber = Int32.Parse(splitInput[1]);
после ввода информации выдает ошибку
Ну посмотрите в отладчике как у вас что отсплитовалось,т.е. массив
C#
1
string[] splitInput = userInput.Split( ' ' );
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
08.01.2012, 19:53
после ввода информации выдает ошибку
А я ведь предупреждал:
И проверки добавь, а то работа приложения будет состоять из выкидывания исключений.
Ты видать через запятую вводишь? Попробуй просто через пробел.
0
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
08.01.2012, 20:07  [ТС]
Да, через пробел работает.
Если в лист записывает, то как теперь организовать поиск?
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
08.01.2012, 20:12
Если в лист записывает, то как теперь организовать поиск?
Он уже организован. все что тебе осталось заменить "Пупкин" на Console.ReadLine().

Я правильно понимаю, что тебе не нужно сохранение состояния и нормальная работа с адресной книгой?
0
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
08.01.2012, 21:26  [ТС]
Я уже сам не понимаю.
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
08.01.2012, 23:40
Цитата Сообщение от nikozavr Посмотреть сообщение
Я уже сам не понимаю.

предложи преподу чтоль на форуме зарегистрироваться, будет он рассказавыть форумчанам, что нужно сделать. развел бадягу уже на 6 страниц... раньше ты хоть просто отказывался вникать в то, что тебе говорят, но сейчас... явный левел ап: ты уже даже не знаешь, что тебе нужно.
0
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
08.01.2012, 23:51  [ТС]
Znake, Вам не с кем пообщаться? К чему Ваши посты? Можете помочь - милости просим, а язвить мы и сами могем. Только не хотим. Не вежливо это.
0
гроза ленивых студентов
 Аватар для znake
456 / 411 / 51
Регистрация: 27.03.2011
Сообщений: 823
09.01.2012, 00:00
да я бы с радостью! но должен же быть фидбек какой-то! KarmaMaker, по-моему, скоро пальцы в кровь о клаву сотрет, пытаясь тебе помочь. а ты даже не хочешь попытаться разобраться в том коде, что тебе дают! судя по постам ты шарп начал изучать в мае 11 года. ты хочешь сказать, что за это время ты не смог научиться понимать элементарное?
вот именно это бесит. считать людей, которым интересно программирование, за какое-то быдло, которому больше делать нечего, чем решать твои задачки. люди их решают, потому что им интересно и потому что они реально хотят помочь. а ты к ним относишься с потребительской точки зрения. лично я красной нитью сквозь все твои посты вижу одно: "какого черта моя задача еще не решена?!"
0
0 / 0 / 0
Регистрация: 07.01.2011
Сообщений: 281
09.01.2012, 00:10  [ТС]
1. Не ты, а Вы.
2. Не зная всех обстоятельств человека, не стоит накидываться на него с обвинениями.
3. Адекватные люди способны понять, что красной нитью через все мои посты проходит смиренное признание мной своей некомпетентности и уважение к мастерам и энтузиастам программирования на этом форуме. А также благодарность за их помощь.
4. За то время, что такой мастер кодирования как Вы, потратили на оскорбления, вполне могли бы уж проект набить с комментами
5. Терпимее надо быть к людям.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.01.2012, 00:10

Адресная книга
AlphaSkin, RichView.

адресная книга на C#
Подскажите, пожалуйста. Нужно написать записную книжку, на подобие стандартной адресной книги windows. С одной стороны treeview, в котором...

Адресная книга
В Виндах у почтовых программ, адрессная книга должна храниться в каком-то файле (наверное). Не подскажете в каком именно. Плиззз. ...

Адресная книга
Здравствуйте, мне нужно создать адресную книгу. Программа должна позволять вводить ФИО абонента, домашний и рабочий адрес, телефоны, и...

Адресная книга
Дали задание создать класс с добавлением, удалением и выводом знчаений на экран...и это все в динамическом массиве да и еще ассоциативно. ...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru