вторник, 26 февраля 2019 г.

c#



text_link, list_pictures, button_download, combo_style, picture,
Combobox в колекції пишемо:
Fill
Fit
Stretch
Title
Center
властивість ставимо DropDownList

Створюємо клас Paper.cs

Описуємо головну форму


четверг, 21 февраля 2019 г.

c#


Кнопочки:buttonPalindoms buttonChilds buttonSimple buttonComplex buttonAnagrams
Текстбох textWords     textAllowLetters
Мітки label1   labelTotalWords (внизу для виведення к-сті слів)
Клацаємо на копопочку і описуємо події і додаткові функції,








вторник, 19 февраля 2019 г.

c#

Ставимо компоненти  чотири кнопки. Двa Label, Listview Налаштовуємо їх, перейменовуємо їх, привязуємо до форми тощо
Кнопки:
button_create,button_add_file, button_open,button_extract_file
мітки- верхня label_filename, нижня - label_error

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;




 і створюємо  відповідні процедури при натисканні на кожну кнопку, описуємо їх.
Створюємо клас Archiver. і описуємо його.



 catch (Exception ex)
            {
                SetError(ex.Message);
                return false;
            }
        }
Після описуємо файл головної форми


четверг, 3 января 2019 г.

C#

Лифт

Чтобы поднять на N-й этаж M-этажного дома новый холодильник, Витя вызвал бригаду грузчиков. Оплата работы грузчиков производится так: за подъем холодильника на один этаж требуется заплатить 200 рублей, за спуск на один этаж - 100 рублей. За подъем и спуск на лифте плата не взимается. Несмотря на то, что в Витином доме есть лифт, ему возможно все же придется заплатить грузчикам, поскольку лифт останавливается только на каждом K-м этаже, начиная с первого (то есть на этажах с номерами 1K+12K+13K+1, ...). Требуется вычислить, какой минимальной суммы денег достаточно, чтобы грузчики доставили холодильник с первого этажа на N-й.
Входные данные
Во входном файле записаны три числа: M (2 ≤ M ≤ 100), N (2 ≤ N ≤ M) и K (2 ≤ K ≤ M-1), разделенные пробелами.
Выходные данные
Выведите одно число - минимальную стоимость подъема холодильника.
Ліміт часу 1 секунда
Ліміт використання пам'яті 64 MiB
Вхідні дані
Sample 1
20 7 4

Sample 2
20 7 2
Вихідні дані
Sample 1
200

Sample 2
0

public static void Main(string[] args) { string setir = Console.ReadLine(); var massiv = setir.Split(' '); int m = int.Parse(massiv[0]); int n = int.Parse(massiv[1]); int k = int.Parse(massiv[2]); int c = ((n - 1)/k)*k + 1; int min = (n - c)*200; if (c + k <= m) min = Math.Min(min, (c + k - n)*100); Console.WriteLine(min); }

Паліндром

Паліндром - це рядок, який однаково читається зліва направо і зправа наліво. Складіть програму, яка перевіряє, чи є заданий текст паліндромом. Не забудьте, що при читанні пропуск ніяк не вимовляється.

Вхідні дані

Рядок S (|S| ≤ 255) складається з рядкових латинських літер і пропусків. Під |S| розуміється довжина рядка.

Вихідні дані

Вивести "YES", якщо текст є паліндромом та "NO" інакше.
Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
palindrom
Вихідні дані #1
NO
Вхідні дані #2
a roza upala na lapu azora
Вихідні дані #2
YES

private static string Gu(string x) { string y = ""; int len = x.Length; for (int i = 0; i < len; i++) y = x[i] + y; return y; } public static void Main(string[] args) { string s = Console.ReadLine(); s = s.Replace(" ", ""); Console.WriteLine(s == Gu(s) ? "YES" : "NO"); } }

Площа чотирикутника

Визначити площу чотирикутника з вершинами A(x1,y1), B(x2,y2), C(x3,y3), D(x4,y4).

Вхідні дані

В одному рядку задано координати послідовних вершин чоторикутника. Всі числа цілі та не перевишують за модулем 100.

Вихідні дані

Вивести площу чотирикутника, округлену до цілих.
Вхідні дані
1 4 5 4 4 2 2 1
Вихідні дані
8

var x1,y1,x2,y2,x3,y3,x4,y4: Integer; s: Real;
begin
  readln(x1,y1,x2,y2,x3,y3,x4,y4);
  s:=0.5*Abs((x1*y2-y1*x2)+(x2*y3-y2*x3)+(x3*y4-y3*x4)+(x4*y1-y4*x1));
  writeln(s:0:0);
end.



Степеневі числа

Число n називається степеневим, якщо його можна отримати з деякого числа множенням на себе хоча б один раз. Наприклад, 4 степеневе число, оскільки 4 = 2 · 227 також степеневе число, бо 27 = 3 · 3 · 3, а 28 не є степеневим числом. Визначити, чи є задані числа степеневими.

Вхідні дані

У першому рядку записано одне натуральне число n - кількість досліджуваних чисел (1 ≤ n ≤ 10). У другому рядку через пропуск записано nчисел - досліджувані числа. Кожне з них більше 1 і менше 109.

Вихідні дані

Вивести n рядків. В i-му рядку записати YES, якщо i-те число є степеневим і NO у противному випадку.
public static void Main(string[] args) { int n = int.Parse(Console.ReadLine()); string setir = Console.ReadLine(); var massiv = setir.Split(' '); int max = 0; int[] a = new int[n]; for (int i = 0; i < n; i++) { a[i] = int.Parse(massiv[i]); if (a[i] > max) max = a[i]; } HashSet<long> siyahi = new HashSet<long> {1}; int log = (int) Math.Log(max, 2) + 1; int kok = (int) Math.Sqrt(max) + 1; for (int i = 2; i < kok; i++) { for (int j = 2; j < log; j++) { long cari = (long) Math.Pow(i, j); if (cari <= max && !siyahi.Contains(cari)) siyahi.Add(cari); } } for (int i = 0; i < n; i++) { Console.WriteLine(siyahi.Contains(a[i]) ? "YES" : "NO"); }

Стовбці

Задано таблицю n × n, заповнену цілими числами. Петро Перший вважає стовбець хорошим, якщо той містить число x. Потрібно для кожного стовбця вияснити, чи є той хорошим.

Вхідні дані

У першому рядку задано число x, яке не перевищує по модулю 2 *109. У другому рядку задано число n (1 ≤ n ≤ 100). Кожен з наступних nрядків містить по n цілих чисел, що не перевищують за модулем 2 *109 - числа у комірках таблиці.

Вихідні дані

Для кожного стовбця в окремому рядку виведіть YES, якщо в ньому є число x, і NO у протилежному випадку.
Ліміт часу 1 секунда
Ліміт використання пам'яті 128 MiB
Вхідні дані #1
1
2
0 1
0 0
Вихідні дані #1
NO
YES
 private static string Yo(int[,] a, int j, int x)
        {
            int n = (int) Math.Sqrt(a.Length);
            for (int i = 0; i < n; i++)
            {
                if (a[i, j] == x) return "YES";
            }
            return "NO";
        }

        public static void Main(string[] args)
        {
            int x = int.Parse(Console.ReadLine());
            int n = int.Parse(Console.ReadLine());
            int[,] a = new int[n, n];
            for (int i = 0; i < n; i++)
            {
                string setir = Console.ReadLine();
                var massiv = setir.Split(' ');
                for (int j = 0; j < n; j++) a[i, j] = int.Parse(massiv[j]);
            }
            for (int j = 0; j < n; j++) Console.WriteLine(Yo(a, j, x));
        }


среда, 26 декабря 2018 г.

Олімпіадні задачі

Квадратний корінь

Знайдіть таке число x, що x2 + SQRT(x) = C з точністю не менше 6 знаків після крапки. Через SQRT(x) позначено корінь квадратний числа x.

1206

f91

МакКарті - відомий теоретик комп'ютерних наук. У одній зі своїх праць він визначив рекурсивну функцію f91, яка визначена для довільного натурального числа n наступним чином:
Якщо n ≤ 100, то f91(n) = f91(f91(n + 11));
Якщо n ≥ 101, то f91(n) = n - 10.
Вхідні дані
Натуральне число n, не більше за 1000000.
Вихідні дані
Значення f91(n).
Вхідні дані
Sample 1
500

Sample 2
91
Вихідні дані
Sample 1
490

Sample 2
91

Прямокутник

prb7379Знаючи координати трьох вершин прямокутника на координатній площині, визначити координати четвертої вершини.
Вхідні дані: В одному рядку записані шість чисел – координати трьох вершин прямокутника. Числові значення цілі, по модулю не більші 100.
Вихідні дані: Два цілих числа - координати четвертої вершини прямокутника.
Вхідні дані
-2 3 4 3 4 -1 
Вихідні дані
-2 -1

Подсчитать буквы

Задана строка s и буква c. Сколько раз буква встречается в строке?

Входные данные

Первая строка содержит строку s с не более чем 100 символами. Вторая строка содержит прописную букву латинского алфавита c.

Выходные данные

Выведите сколько раз буква c встречается в строке s. Одна и та же заглавная и прописная буква считаются одинаковыми. То есть'a' и 'A' считаются одинаковыми буквами.

Четные отрицательные в матрице

Задана матрица размера n * n. Найдите количество и сумму ее четных отрицательных чисел.

Входные данные

Первая строка содержит число n (1 ≤ n ≤ 100). Следующие строки содержат матрицу n * n. Элементы матрицы по модулю не больше 100.

Выходные данные

Выведите в одной строке количество и сумму четных отрицательных чисел в матрице.
Вхідні дані #1
3
4 -2 5
1 -4 -12
0 1 -3

Модуль максимального

Задана послідовність дійсних чисел. Обчислимо їх модулі. Знайдіть максимальне значення серед цих модулей.

Вхідні дані

У першому рядку задано кількість елементів n (n ≤ 100) у послідовності. У наступному рядку задано n дійсних чисел - елементи послідовності, значення яких не первищують за модулем 100.

Вихідні дані

Виведіть максимальне значення серед цих модулей з 2 десятковими знаками.
Вхідні дані #1
5
6 7.5 2.1 2.0 0

Вихідні дані #1
7.50

Турнір

Два гравці влаштували між собою турнір з дартсу. Турнір являє собою серію, яка складається з n ігор. У кожній грі учасники виконують деяку кількість кидків, набираючи очки. Гра вважається виграною тим з гравців, який набрав у ній очок більше, ніж суперник. Якщо ж гравці набрали порівну очок у грі, то її результат вважається нічийним. Пореможцем турніру оголошується той, хто отримав більше всього перемог.
Напишіть програму, яка визначить переможця турніру.

Вхідні дані

У першому рядку задано натуральне число n (1 ≤ n ≤ 1000) - кількість ігор у турнірі. У кожному з наступних n рядків задаються по два числа - кількість очок, набраних першим та другим гравцем відповідно. Усі числа є невід'ємними цілими, які не перевищують 1000.

Вихідні дані

Виведіть число 1, якщо переможцем турніру є перший гравець, 2 - у випадку перемоги другого гравця, і 0 - якщо турнір не виявив переможця.
Вхідні дані #2
2
1 1
0 5
Вихідні дані #2
2

Довга сума

Задано два цілих невід'ємних числа: m і n. Знайти їх суму.

Вхідні дані

У першому рядку міститься m, у другому n (0 ≤ mn < 1030000).

Вихідні дані

Вивести суму без пропусків і ведучих нулів.

Стойкое число

По числу x определим p(x) как произведение его цифр. Рассмотрим последовательность xp(x), p(p(x))... Стойкостью x назовем индекс (начиная с 0) первого однозначного числа в этой последовательности. Например, из 99 получим последовательность 999 * 9 = 818 * 1 = 8. Стойкость числа 99 равна 2. По заданному числу n определите его стойкость.

Входные данные

Каждая строка содержит одно целое число n (0 ≤ n ≤ 2 * 109).

Выходные данные

Для каждого значения n выведите в отдельной строке его стойкость.
Вхідні дані #1
99
268
6
Вихідні дані #1
2
4
0

Затятий колекціонер метеликів

Як відомо, Андрій Сергійович - затятий колекціонер метеликів. Він має величезну колекцію, експонати якої зібрані зі всього світу. Будемо вважати, що в світі існує 2000000000 видів метеликів.
Щоб не заплутатися, Андрій Сергійович присвоїв кожному виду унікальний номер. Нумерація метеликів завжди починається з одиниці. Тепер він хоче знати, чи є метелик з видом k у його колекції, або ж метелика доведеться добувати, витрачаючи безліч сил і грошей.

Вхідні дані

У першому рядку міститься кількість видів метеликів n (1 ≤ n ≤ 100000) у колекції Андрія Сергійовича. У наступному рядку знаходяться nупорядкованих за зростанням чисел - номери видів метеликів у колекції. Всі види метеликів у колекції мають різні номери.
У третьому рядку записано кількість видів метеликів m (1 ≤ m ≤ 100000), про яких Андрій Сергійович хоче дізнатися, чи є вони у нього в колекції або ж ні. В останньому рядку містяться m чисел - номери видів метеликів, наявність яких необхідно перевірити.

Вихідні дані

Вивести m рядків. Для кожного запиту виведіть "YES", якщо метелик із заданим номером міститься у колекції, і "NO" у протилежному випадку.
Вхідні дані #1
7
10 47 50 63 89 90 99
4
84 33 10 82
Вихідні дані #1
NO
NO
YES
NO