SoftUni Adventure2 (Homework: CSharp Advanced)

Posted on Updated on

GitHub Homework1 – CSharp Advanced

featured1Структури от данни – масиви, списъци, опашки, стекове 

  1. Sort Array of Numbers

Write a program to read an array of numbers from the console, sort them and print them back on the console. The numbers should be entered from the console on a single line, separated by a space.

Тук няма нищо особено трябва да напишем програма, която да чете масив от числа от конзолата и да ги принтира обратно сортирани, като трябва да са на една линия, разделени с празно пространство (Пример: 1 3 7 2 5 4 и резултат 1 2 3 4 5 7). Ще използваме готовия вграден метод Array.SortSort Array of Numbers

2.   Sort Array of Numbers Using Selection Sort

Write a program to sort an array of numbers and then print them back on the console. The numbers should be entered from the console on a single line, separated by a space. Refer to the examples for problem 1.
Note: Do not use the built-in sorting method, you should write your own. Use selection sort algorithm.
Hint: To understand the sorting process better you may use a visual aid, e.g. Visualgo.

Смисълът на този алгоритъм е следния – откриваме най-малкото число в масива и го поставяме на първо място, след това следващото по-големина и го поставяме до първото и т.н. докато минем всички числа.

Тук четем масив от числа от конзолата, след което в два вложени цикъла (единият започва от нула, а другият от един индекс напред) Правим проверка и преподреждаме по следният начин.

Пазим си индекса на най-малкото число в масива, в променлива( int smallest = i; ) декларирана в първия фор цикъл. Във вътрешния цикъл  с проверка откриваме най – малкото число и присвояваме индекса му в променливата “smallest”.

for (int i = 0; i < collectionOfNumbers.Length – 1; i++)
{
int smallest = i;
for (int j = i + 1; j < collectionOfNumbers.Length; j++)
{
if (collectionOfNumbers[smallest] > collectionOfNumbers[j])
{
smallest = j;
}
}

След като открием индекса на най – малко число го поставяме на правилната позиция:

int swap = collectionOfNumbers[smallest];
collectionOfNumbers[smallest] = collectionOfNumbers[i];
collectionOfNumbers[i] = swap;

}

Console.WriteLine(string.Join(” “, collectionOfNumbers)); // тук отпечатвам колекцията с помощта   на метода string.Join()

Sort Array of Numbers Using Selection Sort

3.   Categorize Numbers and Find Min / Max / Average

Write a program that reads N floating-point numbers from the console. Your task is to separate them in two sets, one containing only the round numbers (e.g. 1, 1.00, etc.) and the other containing the floating-point numbers with non-zero fraction. Print both arrays along with their minimum, maximum, sum and average (rounded to two decimal places).

В тази задача използваме готови вградени методи от .NET, за да намерим на-малкото число в колекция, най-голямото, средно аритметично и сумата.

Categorize Numbers and Find Min / Max / Average

4.    Sequences of Equal Strings

Write a program that reads an array of strings and finds in it all sequences of equal elements (comparison should be case-sensitive). The input strings are given as a single line, separated by a space

Трябва да прочетем масив от стрингове и да открием всички поредици от еднакви елементи.

Тук ползвам следния похват, ако са еднакви string- овете ползвам метода Console.Write(), в противен случай Console.WriteLine() Sequences of Equal Strings

5.   Longest Increasing Sequence

Write a program to find all increasing sequences inside an array of integers. The integers are given on a single line, separated by a space. Print the sequences in the order of their appearance in the input array, each at a single line. Separate the sequence elements by a space. Find also the longest increasing sequence and print it at the last line. If several sequences have the same longest length, print the left-most of them.

Трябва да открием най-дългата нарастваща подредица в една колекция от числа, да отпечатаме всички нарастващи редици като най-отдолу отпечатаме и коя е най-дълга. Аз съм подходила подобно на предната задача. Само че пазя най-дългата в списък.Longest Increasing Sequence

6.   Subset Sums

Write a program that reads from the console a number N and an array of integers given on a single line. Your task is to find all subsets within the array which have a sum equal to N and print them on the console (the order of printing is not important). Find only the unique subsets by filtering out repeating numbers first. In case there aren’t any subsets with the desired sum, print “No matching subsets.”

Тук използвам рекурсия. Subset Sums

7.   *Sorted Subset Sums

Modify the program you wrote for the previous problem to print the results in the following way: each line should contain the operands (numbers that form the desired sum) in ascending order; the lines containing fewer operands should be printed before those with more operands; when two lines have the same number of operands, the one containing the smallest operand should be printed first. If two or more lines contain the same number of operands and have the same smallest operand, the order of printing is not important.

Sorted Subset Sums

8.   * Lego Blocks

You are given two jagged arrays. Each array represents a Lego block containing integers. Your task is first to reverse the second jagged array and then check if it would fit perfectly in the first jagged array.

The picture above shows exactly what fitting arrays mean. If the arrays fit perfectly you should print out the newly made rectangular matrix. If the arrays do not match (they do not form a rectangular matrix) you should print out the number of cells in the first array and in the second array combined. The examples below should help you understand the assignment better.
Input
The first line of the input comes as an integer number n saying how many rows are there in both arrays. Then you have 2 * n lines of numbers separated by whitespace(s). The first n lines are the rows of the first jagged array; the next n lines are the rows of the second jagged array. There might be leading and/or trailing whitespace(s).
Output
You should print out the combined matrix in the format:
[elem, elem, …, elem]
[elem, elem, …, elem]
[elem, elem, …, elem]
If the two arrays do not fit you should print out : The total number of cells is: count

Като вход ни дават на първи ред редовете на два назъбени масива от числа, а на другите редове

самите редове на масивите(първо на първия, после на втория). Първият масив си остава така. Вторият трябва да се обърне(ревърсне) и да се долепи до първия, ако се получава правилен правоъгълник го отпечатваме във формат [elem, elem, …, elem]
[elem, elem, …, elem].

Но ако резултатът отново е назъбен масив трябва да изпишем съобщение на конзолата и да кажем, колко клетки общо има масивът.

Тук си запазвам входа в два списъка с масив от интове, като във вторият списък, обръщам всички масиви на обратно. След това проверявам сбора от дължините им дали е еднакъв за всички масиви, като пазя броят на клетките в променлива за случаите в които не е еднакъв.Lego Blocks

Следващите две задачи съм решила с помощта на вложени цикли и проверки по сравнително идентичен начин. Stuck Numbers  и Pythagorean Numbers

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s