Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Printf и графический output. 
:(
    Опции темы
junior
Дата 21.1.2005, 00:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.1.2005

Репутация: нет
Всего: нет



привет всем!
если у кого будет время, помогите решить такую задачку, please.
декларируются две переменные, которые соответствуют ширине и длине соответственно. В данном случае их значения 11 и 9, хотя желательно что бы работало для любых значений. На выходе нужно получить следующее:

***********
***********
***********
***********
***********
***********
***********
***********
***********
And:

***********
* *
* *
* *
* *
* *
* *
* *
***********
And:

*
***
*****
*******
*********
***********
*********
*******
*****
***
*

В форуме фигуры изображаются искаженно. Вот картинка, там все фигуры: прямоугольник заполненный звездочками, прямоугольник не заполненный и правильный ромб.
--Resize_Images_Alt_Text--
Я так понимаю, нужно использовать , printf and loops, но у меня рисуется толькл часть фигур.
smile У кого будут идеи, поделитесь пожалуйста.
Спасибо!
PM MAIL ICQ   Вверх
korob2001
Дата 21.1.2005, 03:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: 6
Всего: 61



Может есть способы и лучше, просто времени в обрез. Вот тебе 3 ответа, на 3 твоих вопроса. Коментировать не стал, думаю и так разберёшься, но если всё же возникнут трудности, пиши, тогда поясню каждую строку.
Код

#!/usr/bin/perl -w
use strict;
my $width = 11;
my $height = 9;
print "*" x $width, "\n"  for (1..$height);


Код

#!/usr/bin/perl -w
use strict;
my $width = 11;
my $height = 9;
for (1..$height) {
    unless ( $_ == 1 or $_ == $height ) {
         print "*";
         print " " x ($width - 2), "*\n";
         next;
    }
    print "*" x $width, "\n";
}


Код

#!/usr/bin/perl -w
my( $width, $height );
$width = $height = 41;
$width = $height++ unless $width % 2;
my $star = 1;
my $back = 0;
for (1..($height * 2)) {
    exit(0) if $star <= 0;
    my $blank = ($width - $star) / 2;
    print " " x $blank, "*" x $star, " " x $blank, "\n";
    if ($back) {
       $star -= 2;
    } else {
        $star += 2;
       if ($star >= $height) {
          $back = 1 if $star >= $width;
       }
    }
}

Только в последнем коде, значения переменных $width и $height должны быть одинаковы. Глаза слипаются, если что завтра ещё подумаю.

Удачи.

Это сообщение отредактировал(а) korob2001 - 21.1.2005, 03:26


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
junior
Дата 21.1.2005, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.1.2005

Репутация: нет
Всего: нет



Спасибо, korob2001 !!! smile
Над ромбом еще поработаю, может получится все три фигуры привязать к единым значениям, задаваемым на входе в одной программе. В любом случае, сейчас мне намного проще будет разобраться после твоих идей, за что тебе огромное СПАСИБО!!!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0477 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.