Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- //Описать структуру для записи данных о компьютерах,
- //должна быть возможность редактировать логические диски (добавлять, удалять, менять размер).
- //Создать функцию которая будет принимать на вход одномерный массив таких компов
- //и возвращать тот у которого больше памяти.
- //1. Создаем структуру SComp - описание компьютера.
- //2. Создаем подструктуру SDrive - описание логического диска
- //3. В структуре SComp создаем список дисков (т.к. есть задача добавлять/удалять, массив не подойдет).
- //4. В функции проходимся двумя вложенными циклами: сначала по компам, потом по дискам в одном компе
- namespace Comp
- {
- class Program
- {
- public struct SComp
- {
- public int Num;
- public int RAM;
- public string Proc;
- public List<SDrive> Drives;//чтобы можно было удалять/добавлять
- //Подструктура, описывающая логический диск
- public struct SDrive
- {
- public string DriveName;
- public int DriveSize;
- //конструктор
- public SDrive(string newDriveName, int newDriveSize)
- {
- DriveName = newDriveName;
- DriveSize = newDriveSize;
- }
- }
- //конструктор
- public SComp(int newNum, int newRAM, string newProc, List<SDrive> newDrives)
- {
- Num = newNum;
- RAM = newRAM;
- Proc = newProc;
- Drives = newDrives;
- }
- }
- static void Main(string[] args)
- {
- SComp a = new SComp(1, 8, "Intel Core 1.5", new List<SComp.SDrive>());
- SComp b = new SComp(2, 16, "Intel Core 1.6", new List<SComp.SDrive>());
- SComp c = new SComp(3, 16, "Intel Core 1.7", new List<SComp.SDrive>());
- SComp[] arr = new SComp[3];
- arr[0] = a;
- arr[1] = b;
- arr[2] = c;
- arr[0].Drives.Add(new SComp.SDrive("C", 512));
- arr[0].Drives.Add(new SComp.SDrive("D", 256));
- arr[1].Drives.Add(new SComp.SDrive("C", 256));
- arr[1].Drives.Add(new SComp.SDrive("D", 256));
- arr[2].Drives.Add(new SComp.SDrive("C", 1024));
- CalculateMemory(arr);
- Console.WriteLine("The largest memory in computer " + CalculateMemory(arr).Num);
- }
- public static SComp CalculateMemory(SComp[] arr)
- {
- SComp rightComp = arr[0];//нужный комп (с большей памятью)
- int temp = 0;//храним промежуточное значение наибольшей памяти
- for (int i = 0; i < arr.Length; i++) //проходимся по компам
- {
- int memory = 0;
- for (int j = 0; j < arr[i].Drives.Count; j++)//проходимся по списку дисков
- {
- memory += arr[i].Drives[j].DriveSize;
- }
- if (memory > temp)//подразумеваем, что компов с одинаковой памятью нет
- {
- rightComp = arr[i];
- temp = memory;
- }
- }
- return rightComp;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement