Компьютерный форум
Правила
Вернуться   Компьютерный форум > Форум программистов > Языки программирования > Smalltalk
Перезагрузить страницу Нужно вывести на экран Сквика матрицу
Ответ
 
Опции темы Опции просмотра
  (#1 (permalink)) Старый
Sotis Sotis вне форума
Member
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.10.2009
Unhappy Нужно вывести на экран Сквика матрицу - 12.10.2009, 03:27

Здравствуйте! Месяц назад в вузе нам обьявили, что будем изучать Сквик, а неделю назад дали задания - без всяких подготовительных лекций и обьяснений, без ссылок на нужную литературу, поэтому:

1. Кто знает ссылку на доходчивый и нормальный учебник по Смолтоку и Сквику в частности?

2. Нужно вывести на экран Сквика матрицу вида

123456789
012345678
009123456
000789123
000045678
000009123
000000456
000000078
000000009

что для этого можно использовать? Создать 9 выводов строк или это можно реализовать в каком-то цикле?

Заранее спасибо за помощь новичку :baby:
Ответить с цитированием
  (#2 (permalink)) Старый
Вася Чайко Вася Чайко вне форума
Member
 
Сообщений: 21
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 24.02.2007
По умолчанию 12.10.2009, 10:09

Цитата:
1. Кто знает ссылку на доходчивый и нормальный учебник по Смолтоку и Сквику в частности?
http://squeakbyexample.org/
http://www.iam.unibe.ch/~scg/SBE/SBE.pdf
Ответить с цитированием
  (#3 (permalink)) Старый
HandleX HandleX вне форума
Member
 
Сообщений: 40
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.04.2007
По умолчанию 12.10.2009, 18:01

Цитата:
2. Нужно вывести на экран Сквика матрицу вида

123456789
012345678
009123456
000789123
000045678
000009123
000000456
000000078
000000009

что для этого можно использовать? Создать 9 выводов строк или это можно реализовать в каком-то цикле?
Я так и не понял закона для вывода строк в этом примере.
Но по крайней мере, чтобы понять общий смысл организации циклов через посылку сообщений и использование замыканий в качестве параметров (что типичо в Smalltalk), выполните в воркспейсе следующее:
Код:
0 to: 8 do: 
    [:i |
    i timesRepeat: [Transcript nextPut: $0].
    1 to: (9 - i) do: [:j | Transcript display: j].
    Transcript cr]
Попытайтесь понять, что же всё таки происходит в этом коде :-) Удачи.
Ответить с цитированием
  (#4 (permalink)) Старый
Sotis Sotis вне форума
Member
 
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 12.10.2009
По умолчанию 12.10.2009, 23:51

/Я так и не понял закона для вывода строк в этом примере./

Выводятся цифры от 1 до 9, но с каждой строкой добавляется дополнительно по одному нулю. Я так думаю, что логично организовать 2 цикла - один для количества нулей, а 2й - для других цифр.

Вот только как все это оформить на Смолтоке - незнаю. :wall:

И еще одно - как регулировать количество символов в строке?
Ответить с цитированием
  (#5 (permalink)) Старый
HandleX HandleX вне форума
Member
 
Сообщений: 40
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 03.04.2007
По умолчанию 13.10.2009, 07:22

Цитата:
Выводятся цифры от 1 до 9, но с каждой строкой добавляется дополнительно по одному нулю. Я так думаю, что логично организовать 2 цикла - один для количества нулей, а 2й - для других цифр.

Вот только как все это оформить на Смолтоке - незнаю.
Я уже Вам всё "оформил" в предыдущем посте в примере кода, разбирайтесь с ним, изучайте, запускайте в воркспейсе сквик'а.

Цитата:
И еще одно - как регулировать количество символов в строке?
Что значит "регулировать"? Зачем вам такой контроль?
Изучайте протоколы (наборы сообщений) родительских классов String, чтобы понять, что может строка.
Всё это - коллекции смоллтока.
Но в моём примере идёт потоковый вывод в Transcript.
Transcript -- это окно отладки в смоллтоке, специально предназначенное для вывода диагностических сообщений.
При выводе в транскрипт используются протоколы потокового вывода, плюс несколько специфичных для транскрипта вещей, например метод #cr, осуществляющий переход на новую строку.

В общем, у вас огромное поле для исследований, но когда хоть чуть-чуть прояснится картинка, Smalltalk Вас может потрясти своей мощью.
И ещё он очень зрелый, код который в нём используется -- вылизывался десятилетиями.
Не стесняйтесь исследовать Smalltalk и его классы, и вы обнаружите, что качество программирования в нём возрастает многократно, если не изобретать свои велосипеды при каждом чихе, а использовать уже реализованные в Smalltalk вещи, как раз и призванные максимально облегчить программирование.
Ответить с цитированием
Ads.
  (#6 (permalink)) Старый
chaetal chaetal вне форума
Member
 
Сообщений: 42
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Регистрация: 11.04.2005
По умолчанию 13.10.2009, 09:12

Цитата:
1. Кто знает ссылку на доходчивый и нормальный учебник по Смолтоку и Сквику в частности?
Англоязычные источники Вам уже подсказали. Если хочется русского, то попробуйте найти книгу А. С. Лесневского "Объектно-ориентированное программирование для начинающих" --- там первая часть посвящена Squeak-у. (Лучше, конечно, купить, но можно найти и нахаляву.)

Цитата:
2. Нужно вывести на экран Сквика матрицу вида

123456789
012345678
009123456
000789123
000045678
000009123
000000456
000000078
000000009

что для этого можно использовать? Создать 9 выводов строк или это можно реализовать в каком-то цикле?
Неплохая задача --- дам своим студентам. Делается, разумеется в цикле. Ответ приводить не буду. Могу дать подсказки:
1. Если отбросить нули, каждая новая строка начинается с той цифры, которая идет вслед за последней на предыдущей строке.
2. Остаток от деления x на y в Smalltalk: x \\ y.
3. 1 = (8 + 1) \\ 9 + 1.

Удачи
Ответить с цитированием
Ads
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести матрицу на экран keti Вопросы начинающих программистов 0 21.06.2011 21:04
Программка считывает матрицу из заданного файла данные не поступают на экран Sorrat Visual C++ 4 18.12.2010 14:32
Нужно вывести на экран маршрут движения к любому указанному узлу дерева anomali Lisp 3 26.05.2010 19:50
Как ввести и вывести (квадратную ) матрицу из случайных чисел God-of-Chaos Вопросы начинающих программистов 5 26.12.2007 08:33
Вывести полученную строку на экран Петр 1 Assembler 1 25.06.2007 14:58
Как вывести массив на экран Zekson82 Assembler 3 13.01.2006 22:58
Как вывести на экран текст investor Pascal 2 13.12.2005 15:10
На экран нужно вывести в какой таблице сколько есть столбики Vitalijus SQL 0 22.03.2005 00:43
Нужно создать реалиционную матрицу 6a6Ka SQL 1 13.10.2004 14:16
Нужно составить матрицу с четырьмя неизвестными Mixz Вопросы начинающих программистов 3 27.09.2004 21:00
XML schema как вывести картинку на экран Anonymous XML & WML 1 11.02.2004 11:11
Как вывести на экран все автоморфные числа Anonymous Вопросы начинающих программистов 1 14.11.2003 12:04



Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Нardforum.ru - компьютерный форум и программирование, форум программистов