imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 23.04.2004, 01:11     # 1
Комбинатор
::VIP::
 
Аватар для Комбинатор
 
Регистрация: 12.04.2004
Адрес: подводная лодка ОфПомОчБар
Сообщения: 607

Комбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор Сэнсэй
Помогите решить простую задачу на С++

Народ помогите решить задачу на С++

задача:
принимается число, и печатает пирамиду начиная с нуля и дальше

например если n=5
то прога напечатает такую пирамиду:

1
121
12321
1234321
123454321
как такое зделать?
Комбинатор вне форума  
Старый 23.04.2004, 02:03     # 2
Dimm
Добрый фей-мод
 
Аватар для Dimm
 
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155

Dimm СуперБогDimm СуперБог
Dimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБог
N - дано. Например 5.

int i;
for (int Line = 1; Line <= N; Line++)
{
int spaces = N - Line;
for (i = 0; i < spaces; i++)
printf(" ");
for( i = 1; i <= Line; i++ )
printf("%d", i);
for(i -= 2; i > 0; i-- )
printf("%d", i);
for (i = 0; i < spaces; i++)
printf(" ");

printf("\n");
}

Код можно конечно оптимизировать и написать красивее, но я сделал как проще. Тебе ведь именно это нужно?

P.S.
Не забудь сделать #include <stdlib.h>
__________________
Фотолюбительщина

Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью.
Dimm вне форума  
Старый 23.04.2004, 02:29     # 3
albo
Advanced Member
 
Аватар для albo
 
Регистрация: 20.08.2003
Адрес: Москва
Пол: Male
Сообщения: 402

albo Луч света в тёмном царствеalbo Луч света в тёмном царствеalbo Луч света в тёмном царствеalbo Луч света в тёмном царствеalbo Луч света в тёмном царствеalbo Луч света в тёмном царстве
Вообще-то stdio.h
albo вне форума  
Старый 23.04.2004, 16:26     # 4
Комбинатор
::VIP::
 
Аватар для Комбинатор
 
Регистрация: 12.04.2004
Адрес: подводная лодка ОфПомОчБар
Сообщения: 607

Комбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор Сэнсэй
Цитата:
Код можно конечно оптимизировать и написать красивее, но я сделал как проще. Тебе ведь именно это нужно?
да, пасибо, только ты написал в С а не в С++ но не страшно алгоритм я понял, пасибо!!
Комбинатор вне форума  
Старый 24.04.2004, 12:53     # 5
V@nya
Full Member
 
Аватар для V@nya
 
Регистрация: 20.07.2002
Адрес: Находка
Сообщения: 740

V@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царстве
Цитата:
только ты написал в С а не в С++
А как по твоему он будет выглядеть на С++, разве не также? Или ты собрался делать класс для этой задачки?
V@nya вне форума  
Старый 24.04.2004, 14:46     # 6
Комбинатор
::VIP::
 
Аватар для Комбинатор
 
Регистрация: 12.04.2004
Адрес: подводная лодка ОфПомОчБар
Сообщения: 607

Комбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор Сэнсэй
Цитата:
А как по твоему он будет выглядеть на С++, разве не также? Или ты собрался делать класс для этой задачки?
printf("%d", i);
printf("%d", i);
printf(" ");
printf("\n");

эти функции в С++ выглядят как
cout<<" ";
Комбинатор вне форума  
Старый 24.04.2004, 15:52     # 7
V@nya
Full Member
 
Аватар для V@nya
 
Регистрация: 20.07.2002
Адрес: Находка
Сообщения: 740

V@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царстве
inkognito, ты не прав. В С++ printf так же работает, да и cout в Си вроде тоже долмна быть. Основное отличие С++ от Си это классы (ООП).
V@nya вне форума  
Старый 26.04.2004, 14:52     # 8
Комбинатор
::VIP::
 
Аватар для Комбинатор
 
Регистрация: 12.04.2004
Адрес: подводная лодка ОфПомОчБар
Сообщения: 607

Комбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор Сэнсэй
V@nya, ок, незнал что это тоже работает в С++.
Цитата:
Основное отличие С++ от Си это классы (ООП).
точно, и есчо там обьявление переменых в С++ удобней. так как можно в любом месте обьявлять
Комбинатор вне форума  
Старый 26.04.2004, 15:38     # 9
V@nya
Full Member
 
Аватар для V@nya
 
Регистрация: 20.07.2002
Адрес: Находка
Сообщения: 740

V@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царстве
inkognito, а в Си чё, переменные не везде можно объявлять, только в начале? Это плохо. Да и кто на чистом Си пишет, как правило учат сразу С++ на компиляторе Borland C++ 3.0, я на чистом си не разу не писал, да и копилятор сейчас не найти.
V@nya вне форума  
Старый 26.04.2004, 16:27     # 10
Комбинатор
::VIP::
 
Аватар для Комбинатор
 
Регистрация: 12.04.2004
Адрес: подводная лодка ОфПомОчБар
Сообщения: 607

Комбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор СэнсэйКомбинатор Сэнсэй
Цитата:
а в Си чё, переменные не везде можно объявлять, только в начале? Это плохо.
Да не очень удобно, например если делаешь цикл например фор то внутри обьявить переменую нельзя
Цитата:
Да и кто на чистом Си пишет, как правило учат сразу С++ на компиляторе Borland C++ 3.0, я на чистом си не разу не писал, да и копилятор сейчас не найти.
V@nya, полностью согласен, тоже сомневаюсь что еть такие кто пишут на Си, хотя может только из за старой привычки.
я впринцепи Си незнаю я сразу с С++ начинал
Комбинатор вне форума  
Старый 27.04.2004, 15:25     # 11
V@nya
Full Member
 
Аватар для V@nya
 
Регистрация: 20.07.2002
Адрес: Находка
Сообщения: 740

V@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царствеV@nya Луч света в тёмном царстве
inkognito
Цитата:
я впринцепи Си незнаю я сразу с С++ начинал
Вот и я тоже сразу учил С++
V@nya вне форума  
Старый 27.04.2004, 23:28     # 12
ppiitt
Guest
 
Сообщения: n/a

Всем читать
Бьерн Страуструп "Язык программирования С++"
Чтобы понять разницу между С++ и С.

Стандарт С99 позволяет в языке Си объявлять переменные в любом месте.

 
Старый 28.04.2004, 04:51     # 13
PrayeR
Faith Saver
Ворчун-2004
 
Аватар для PrayeR
 
Регистрация: 17.12.2002
Адрес: void
Сообщения: 2 583

PrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR ГуруPrayeR Гуру
если я не ошибаюсь то cin и cout в С нету... (тока не бейте ногами если не прав )
__________________
я всегда буду против
PrayeR вне форума  
Старый 28.04.2004, 13:38     # 14
ppiitt
Guest
 
Сообщения: n/a

не ошибаешься
Нету. cin, cout - работа с потоками (это классы)
 
Старый 28.04.2004, 14:06     # 15
Dimm
Добрый фей-мод
 
Аватар для Dimm
 
Регистрация: 18.09.2002
Адрес: Израиль
Пол: Male
Сообщения: 4 155

Dimm СуперБогDimm СуперБог
Dimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБогDimm СуперБог
Кхм, друзья. По моему начался Offtop.
Если хотите, создайте соотвествующий топик и развлекайтесь там.

Модерам
ИМХО тема может быть закрыта.
__________________
Фотолюбительщина

Пока слова не сказаны - ничего нет. Но если они сказаны, даже то чего нет становится реальностью.
Dimm вне форума  
Старый 13.05.2004, 17:11     # 16
Zaber
Junior Member
 
Аватар для Zaber
 
Регистрация: 19.12.2001
Адрес: Israel
Сообщения: 184

Zaber Путь к славе только начался
Красивее это написать конечно рекурсией
Zaber вне форума  
Старый 14.05.2004, 23:19     # 17
Tano
Junior Member
 
Аватар для Tano
 
Регистрация: 01.05.2004
Сообщения: 175

Tano Известность не заставит себя ждать
Треугольник Паскаля? V@nya, неплохо=)
__________________
Don't keep your mind in a [frame]!
Tano вне форума  
Старый 22.11.2008, 19:07     # 18
Рем
Guest
 
Сообщения: n/a

Плиз кто нибудь помогите написать прогу(( Я вообще в отчаянии ниче вообще не получается... Разработать программу, которая подводит итоги Олимпийских игр. Программа должна получить от пользователя количество золотых, серебряных и бронзовых медалей, завоеванное каждой командой-участницей (принять количество команд равное 5). Далее по количеству медалей каждого достоинства необходимо вычислить соответствующее число очков команды. Количество очков вычисляется по следующему правилу: за золотую медаль команда получит семь очков, за серебряную — шесть, за бронзовую — пять очков. После таких расчетов список команд нужно упорядочить в соответствии с набранным количеством очков с помощью алгоритма сортировки обменом и вывести в диалоге. Построить также столбчатую диаграмму набранных очков с подписью названия каждой команды.

Заранее спасибо...
 
Старый 22.11.2008, 23:43     # 19
Voland25
Junior Member
 
Регистрация: 28.11.2003
Адрес: Израиль
Пол: Male
Сообщения: 67

Voland25 МолодецVoland25 МолодецVoland25 Молодец
Рем, похоже, это уже Visual C++, раз мы о диалогах заговорили? Поточнее требования, пожалуйста.

В плане руководства к действию, вот примерно так это должно реализовываться на С++ без примесей Visual и иже с ним:

- Определяем класс Team со свойствами m_Gold, m_Silver, m_Bronze типа integer, и свойством m_Name типа string. Само собой, определяем геттеры, сеттеры и конструктор(ы).

Один из методов - getTeamScore() - возвращает следующее выражение:
(7*m_Gold + 6*m_Silver + 5*m_Bronze)
- Определяем класс ScoreSummarizer - главный класс программы. В нем определяем массив указателей на объекты типа Team размером в 5 штук (по кол-ву комманд).
При инициализации запускаем метод этого класса getUserInput(), который заполнит массив коммандами. Алгоритм заполнения:

* В цикле запрашиваем название комманды и кол-во всех медалей
* Определяем новый объект, инициализируем полученными данными, если конструктор default (если же нет - вызываем соответствующий конструктор)
* Назначаем соответствующий указатель из массива чтобы показывал на этот объект
* Переходим к следующей команде
- В классе ScoreSummarizer определяем метод displayData. Его задача - вывести на экран отсортированный список команд с очками, и нарисовать диаграмму столбцов. Для этого определяем три вспомогательных метода:
* sortTeamScores - сортирующий имеющийся у нас массив методом обмена (для выяснения конкретного значения очков команды пользуемся методом getTeamScore из класса Team). Алгоритм приводить не буду, ибо Google - великий знаток алгоритмов сортинга.
* printTeams - выводит на экран форматированные строки, содержащие название команды и кол-во очков
* displayDiagram - тут немного посложнее . Просто распечатываем количество строк, равное максимальному кол-ву очков, когда в каждой строке печатается символ (ну например "*") только если команда набрала (max score - line index) очков... Т.е. в первой строке будут только символы тех команд, у которых максимум, во второй - у которых максимум и максимум - 1, и так далее до тех пор пока кол-во строк не станет равным максимальному кол-ву очков.
Затем, последней строкой, под каждым столбцом высвечиваем название каждой команды.
- Ну, и финал - в main() объявляем объект типа ScoreSummarizer. Если мы вызывали getUserInput в конструкторе этого класса, то можно смело вызывать displayData(). Если же конструктор этого класса default - то последовательно вызываем getUserInput(), а затем уже displayData().

Удачи!
__________________
"Inter arma leges silent" - "молчат законы при звоне оружия"
Voland25 вне форума  
Старый 23.11.2008, 01:59     # 20
Рем
Guest
 
Сообщения: n/a

Спасибо Voland25, постараюсь сделать...
 

Опции темы

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

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

Быстрый переход


Часовой пояс GMT +4, время: 23:02.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.