ИД "Мой компьютер"   "Игроград"   "Реальность фантастики"   Ассамблея "Портал"
Сделать стартовой   

 
Домашняя страница
Расширенный поиск
E-mail

 

N 16 (447)




МОЙ КОМПЬЮТЕР




  Новости:

 
МК
Украина
Игры
Интернет
Железо
Софт
Пресс-релизы

  Статьи:

 
Уголок читателя
Прочее
Имеющий уши
Программирование
Интернет
Железо
Софт
Игры


 
КОНКУРСЫ



Правила конкурсов

Конкурс "АВЧ"

Рейтинг победителей


ОПРОС

Вы посещаете нас:
первый раз
1-2 раза в месяц
1-2 раза в неделю
1-2 раза в день
более 2-х раз в день Что привело Вас к нам?
поиск информации
интерес к статьям
интерес к новостям
любопытство
реклама
другое








боулинг

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua













Argumentum ad ignorantiam!

 

статьи
Программирование



 

Прочее  
Visual basic  
Delphi  
C++  
Интернет приложения  
Теория  




    Прочее


Задача из легких

Virpool
N 8 (439) 04.03.2007


Сейчас много изучающих программирование, особенно среди школьников, осознавших, что компьютер — это не только игрушки, но и мощный аппарат для написания полезных программ. Обычное дело, когда на форумах начинающие программисты обращаются к более продвинутым «кодерам» с просьбой что-либо разъяснить. Или берутся самостоятельно изучать разные учебники. Но теория теорией, а практика все-таки не помешает.

Предлагаю подборку задач, решая которые, можно научиться много чему полезному в программировании (не говорю уже об элементарном расширении кругозора). Если вы крутой кодер, которому моря по колено, возможно, эти задачи покажутся вам примитивными. Но если вы сомневаетесь в своих силах, то предлагаю прочесть эту статью и сделать соответствующие выводы.

Недавно передо мной встала одна проблема: как упорядочить текст (слова) в переменной типа string по алфавиту? Как бы и не особая проблема, но оказалось, для кого как. Особенно для начинающих программистов. Поэтому вот такая обрисовалась задача.

Задача №1:

Дана строка, в которой находятся, допустим, пять слов (количество несущественно, хоть миллион), разделенных пробелом. Задача состоит в том, чтобы упорядочить слова по алфавиту средствами Паскаля (Object Pascal).

Решение:

Эту задачу можно решить многими способами, но лучше всего создать массив из этих слов, отсортировать, а затем вывести полученный массив на экран. Для решения этой задачи будем использовать среду разработки Delphi 7.

Поначалу нужно написать подпрограмму для преобразования строки из слов в массив. Допустим, мы напишем процедуру. У меня получилось такое:

Далее нужно отсортировать этот массив любым из известных вам методов. Не мудрствуя лукаво, используем самый простой. В итоге у нас получится что-то вроде этого:

В принципе, наша задача решена. Но благо мы пишем на Delphi, создадим еще одну подпрограмму вывода массива, например, в компонент Memo. Тогда в нашу программу добавится еще одна процедура:

И еще… Чтобы уже наверняка разобраться с задачей :-), представим, что все эти действия будут происходить при нажатии на кнопку Button1:

Вместо эпилога

В ходе решения задачи мы затронули некоторые аспекты программирования, такие как работа со строками, массивами. Надеюсь, время, которое ушло а прочтение данного материала (и, смею надеяться, его реализации), не потрачено вами даром.

Эту задачу можно было решить и без использования массива: берем две подстроки, в нашем случае два слова, заносим их в две разных переменных, а затем попарно их сравниваем и сортируем. Но этот метод (ИМХО) не очень рационален, есть множество других вариантов, получше.

И главное — в строке может быть сколь угодно много слов. Для того чтобы увеличить число обрабатываемых слов, нужно просто увеличить значение константы Count. Например, с пяти до ста, или более. Собственно, это и будет вашим заданием. Подсказка: можно объявить динамический массив, в процедуре StringToArray узнать количество слов, в соответствии с ним установить размерность массива (при помощи стандартной подпрограммы SetLenght), а потом уже его заполнить. Это задание очень легкое, поэтому оставляю вас с ним наедине.

P.S. Если у вас получилось решение лучше и компактнее, чем у меня, прошу поделиться. Удачи вам в ваших начинаниях… и, собственно, продолжениях :-).







Расширенный поиск 
 

О проекте  Рекламодателям  Карта сайта  Контакт  Обратная связь 

© ИД "Мой компьютер"®, 1998-2004