Моделирование работы жесткого диска - C#
Формулировка задачи:
Доброе время суток, нужна помощь в следующем: вводится команда с консоли, по нажатию Enter в массиве из 1024 нулей заполняется 8 единиц, конечный массив имеет вид 111111110000...0. При вводе той же команды к первым 8 единицам прибавляется еще 8 единиц, и массив имеет вид 11111111111111110000...0. Когда заполняются последние 8 единиц в массиве, выдать сообщение типа "жесткий диск полон". Пока могу похвастаться следующим кодом, возможно, он в корне неправильный. Заранее спасибо.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- using System.Media;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine("Для получения списка комманд введите 'help':");
- int[] mass = new int[1024];
- for (;;)
- {
- string command = Console.ReadLine();
- if (command == "help")
- {
- Console.WriteLine("help - список комманд;");
- Console.WriteLine("format - форматирование;");
- Console.WriteLine("exit - выход;");
- Console.WriteLine("create file - создать файл;");
- }
- if (command == "format")
- {
- using (StreamWriter stream = new StreamWriter("d:\\matrix.txt"))
- {
- for (int i = 0; i < mass.Length; i++)
- {
- stream.Write("0");
- }
- }
- Console.WriteLine("Форматирование выполнено");
- }
- if (command == "create file")
- {
- using (StreamReader stream = new StreamReader("d:\\matrix.txt"))
- {
- char[] buffer = new char[1024];
- int i = 0;
- int k = 1024;
- stream.Read(buffer, i, k);
- foreach (char c in buffer)
- {
- int x = Convert.ToInt16(c) - 48;
- if (x >= 0)
- {
- for (int z = 0; z <= 0; z++)
- {
- mass[z] = x;
- Console.Write(mass[i]);
- }
- }
- }
- Console.WriteLine();
- }
- Console.Write("Файл создан");
- }
- if (command == "exit")
- {
- {
- break;
- }
- }
- }
- }
- }
- }
Решение задачи: «Моделирование работы жесткого диска»
textual
Листинг программы
- int[] array = new int[1024];
- for (int i = 0; i < 1024; i++)
- {
- array[i] = 0;
- }
- int q = 0;
- while (q <=1016)
- {
- if (Console.ReadLine().ToLower().Equals("fill"))
- {
- for (int j = q; j < q + 8; j++)
- {
- array[j] = 1;
- }
- q += 8;
- }
- }
- Console.WriteLine("hard disk is full");
- Console.ReadKey();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д