Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Помогите, срешением задач! С++

Закрытая тема
Настройки темы
Помогите, срешением задач! С++

Мичуринский ученик


Сообщения: 740
Благодарности: 1

Профиль | Отправить PM | Цитировать


1)Написать программу, которая отображает у левого края экрана сплошной треугольник из звездочек, высота которого указана целым параметром side. Например,если side = 4 на экран должно выводиться
        *

     * * *

  * * * * *

* * * * * * *

2)С помощью перегрузки функций создайте функцию convert(), переводящую гривни в доллары и наоборот.
3)Написать программу, которая получает в качестве параметра целое число и возвращает число с обратным порядком цифр
4)Вывести на экран все числа кратные 11 в диапазоне, заданном пользователем.
5)Игра «кубики». Условие: имеется два игральных кубика со значениями от 1 до 6. Игра происходит с компьютером, кубики бросаются поочередно. Побеждает тот, у кого сумма выпавших очков по итогам пяти бросков больше. Предусмотрите возможность получения первого хода человеком или компьютером. Кубики отображаются с помощью символов. В конце игры необходимо выводить среднюю сумму по броскам для обоих участников.
6)Создать программу, которая выводит на экран простые(тЕ КОТОРЫЕ ДЕЛЯТЬСЯ  тоько само на себя и на 1) числа в диапазоне от 2 до 1000.

-------
Apis.NET@oszone.net


Отправлено: 03:16, 08-12-2001

 

Инет-администратор


Сообщения: 550
Благодарности: 0

Профиль | Сайт | Отправить PM | Цитировать


Apis.NET
Треугольник Паскаля?

Отправлено: 05:00, 08-12-2001 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Мичуринский ученик


Сообщения: 740
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата:
Треугольник Паскаля?
Дык я такое первый раз ваще слышу!

-------
Apis.NET@oszone.net


Отправлено: 12:28, 08-12-2001 | #3


Аватара для BigMac

Призрачный админ


Сообщения: 5254
Благодарности: 90

Профиль | Отправить PM | Цитировать


#Moderation Mode

А на фига форум Программирование делали?????

Перемещено сюда

-------
Истина где-то рядом...


Отправлено: 14:14, 08-12-2001 | #4


Модер


Сообщения: 1716
Благодарности: 17

Профиль | Сайт | Отправить PM | Цитировать


3)Написать программу, которая получает в качестве параметра целое число и возвращает число с обратным порядком цифр


Напишу, так сказать, логику. А то мало ли как процент отобразится.
SOURCE - дано
BASE - основание исчисления (по умолчанию 10)
RESULT=0 - результат
i - вспомогат. переменная
while (SOURCE)
{
 i = (остаток от деления SOURCE на BASE)
 RESULT увеличиваем на i
 RESULT умножаем на BASE
 SOURCE целочисленно делим на BASE
}

-------
Васкецов Сергей
http://registry.oszone.net


Отправлено: 16:04, 08-12-2001 | #5


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Цитата:
Apis.NET
1)Написать программу, которая отображает у левого края экрана сплошной треугольник из звездочек, высота которого указана целым параметром side. Например,если side = 4 на экран должно выводиться
* * * * *

* * ** * *

* * * * * *

* * * * * * *
Я вас удивлю но в C++ экрана не существует! Существует телетайпный вывод через cout/printf.

надеюсь в коде сами разберётесь:
Код: Выделить весь код
#include <iostream>

void draw_triangle( unsigned int size );

int main()
{
 * *draw_triangle( 5 );
 * *draw_triangle( 10 );
 * *return 0;
}

inline void out_chars( unsigned int num, char ch )
{
 * *for( ; num ; --num )
 * * * *std::cout << ch;
}

void draw_triangle( unsigned int size )
{
 * *unsigned int to_draw = 1;
 * *for( ; size ; --size )
 * *{
 * * * *out_chars( size - 1, ' ' );
 * * * *out_chars( to_draw, '*' );
 * * * *std::cout << "\n";
 * * * *to_draw += 2;
 * *}
}
Цитата:
2)С помощью перегрузки функций создайте функцию convert(), переводящую гривни в доллары и наоборот.
Не понял чего тут сложного, и на хрена перегрузка.
Цитата:
3)Написать программу, которая получает в качестве параметра целое число и возвращает число с обратным порядком цифр
Кривое решение:
Код: Выделить весь код
#include <iostream>

unsigned int reverse( unsigned int in );

int main()
{
 * *std::cout << reverse( 12345 ) << "\t" << reverse( 67890 );
 * *return 0;
}

unsigned int reverse( unsigned int in )
{
 * *unsigned int out = 0;
 * *while( in )
 * *{
 * * * *out += in % 10;
 * * * *out *= 10;
 * * * *in /= 10;
 * *}
 * *return out;
}
Цитата:
4)Вывести на экран все числа кратные 11 в диапазоне, заданном пользователем.
5)Игра «кубики». Условие: имеется два игральных кубика со значениями от 1 до 6. Игра происходит с компьютером, кубики бросаются поочередно. Побеждает тот, у кого сумма выпавших очков по итогам пяти бросков больше. Предусмотрите возможность получения первого хода человеком или компьютером. Кубики отображаются с помощью символов. В конце игры необходимо выводить среднюю сумму по броскам для обоих участников.
Оба задания легче некуда.
Цитата:
6)Создать программу, которая выводит на экран простые(тЕ КОТОРЫЕ ДЕЛЯТЬСЯ *тоько само на себя и на 1) числа в диапазоне от 2 до 1000.
Сейчас лень писать, вечерком это напишу.

(Отредактировал(а) ivank - 14:11 - 8 Дек., 2001)


(Отредактировал(а) ivank - 15:12 - 8 Дек., 2001)

-------
http://ivank.ru


Отправлено: 17:05, 08-12-2001 | #6


Студент


Сообщения: 445
Благодарности: 8

Профиль | Отправить PM | Цитировать


Apis.NET
Ну не знаю я Си, хотя было бы полезно. По этой самой причине привожу тексты программ на Паскале. В принципе понять, что делает программа нетрудно, тебе остаётся только перевести в код на Си.

1.
Код: Выделить весь код
var
 *side, i, j : byte;
 *s : string;
begin
 *readln(side);
 *for i := 0 to (side-1) do begin
 * *s := '*';
 * *for j := 1 to (side - i - 1) do s := ' ' + s;
 * *for j := 1 to i do s := s + '**';
 * *writeln(s);
 *end;
end.
2. Не знаю, что ты называешь перегрузкой функций, но такие функции на Паскале могут выглядеть так:

Код: Выделить весь код
{$N+}
const Kypc = 1; {Здесь нужно вместо 1 подставить курс доллара в гривнах}

Function Griven_to_dollar(Grivens : Double) : double;
begin
 *Griven_to_dollar := Grivens / Kypc;
end;

Function Dollar_to_griven(Dollars : Double) : double;
begin
 *Dollar_to_griven := Dollars * Kypc;
end;
3.
Код: Выделить весь код
var
 *l : longint;
 *res : longint;
 *code : integer;
begin
 *val(paramstr(1), l, code); {Это просто получение параметра в переменную L}
 *res := 0;
 *while l > 0 do begin
 * *res := res*10 + (l mod 10);
 * *l := l div 10;
 *end;
 *halt(res); { Тот же return (res) в си... }
End.
4.
Вариант 1:
Код: Выделить весь код
var
 *d, u : longint;
 *l : longint;
begin
 *write('From: ');
 *readln(d);
 *write('To: ');
 *readln(u);
 *for l := d to u do
 * *if (l mod 11) = 0 then writeln(l);
end.
Вариант 2(работает быстрее):
Код: Выделить весь код
var
 *d, u : longint;
 *l : longint;
begin
 *write('From: ');
 *readln(d);
 *write('To: ');
 *readln(u);
 *if (d >= 0) and ((d mod 11) = 0) then writeln(d);
 *l := (d div 11);
 *if L < 0 then l := l * 11 else l := (l + 1) * 11;
 *while l <= u do begin
 * *writeln(l);
 * *inc(l, 11);
 *end;
end.
5. Ну это извращение, там только реализация. Сам пиши.

6.
Вариант 1(сложность алгоритма - O(N*Log(N))):
Код: Выделить весь код
var
 *i, j : integer;
 *s : boolean;
 *simple : array[0..168] of integer; {в данном диапазоне именно 168 простых чисел}
begin
 *for i := 2 to 1000 do begin
 * *s := true;
 * *for j := 1 to simple[0] do if (i mod simple[j]) = 0 then begin
 * * *s := false;
 * * *break;
 * *end;
 * *if s then begin
 * * *inc(simple[0]);
 * * *simple[simple[0]] := i;
 * *end;
 *end;
 *for i := 1 to simple[0] do writeln(simple[i]);
end.
Вариант 2(сложность алгоритма - O(N*N), зато экономит память):
Код: Выделить весь код
var
 *i, j : integer;
 *s : boolean;
begin
 *for i := 2 to 1000 do begin
 * *s := true;
 * *for j := 2 to (i - 1) do if (i mod j) = 0 then begin
 * * *s := false;
 * * *break; {прервать цикл}
 * *end;
 * *if s then writeln(i);
 *end;
end.
Maxvell
Цитата:
Треугольник Паскаля?
Слышал такое словосочетание, но не знаешь, что это такое? -

Треугольник Паскаля это примерно следующее
* * *1
* * 1 1
* *1 2 1
*1 *3 3 1
1 4 *6 *4 1
1 5 10 10 5 1

Каждое число считается как сумма двух вышестоящих. Используется при вычислении количества сочетаний (например).
Ну и для других вещей -


(Отредактировал(а) noname00.pas - 12:40 - 8 Дек., 2001)

-------
*Origin: Lots of people talking, few of them - no... (2:5020/****.**)

Это сообщение посчитали полезным следующие участники:

Отправлено: 17:55, 08-12-2001 | #7


редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


noname00.pas
Код с отступом в один пробел это ИМХО извращение.

И кстатит лучше пользовать тэги [ code] и [ /code] ( буз пробелов ) -- моноширный текст лучше читается.

-------
http://ivank.ru

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:08, 08-12-2001 | #8


Студент


Сообщения: 445
Благодарности: 8

Профиль | Отправить PM | Цитировать


ivank
Цитата:
Код с отступом в один пробел это ИМХО извращение.
По-моему тоже... Я кстати с двумя пробелами пишу -

-------
*Origin: Lots of people talking, few of them - no... (2:5020/****.**)


Отправлено: 18:45, 08-12-2001 | #9


Аватара для BigMac

Призрачный админ


Сообщения: 5254
Благодарности: 90

Профиль | Отправить PM | Цитировать


noname00.pas
Я в школе тоже с 2 писал.. А на Фортране с 6!!! надо.. Такой суксь......... Слушайте, а похелпить сможете с одной сложной прогой??? Или если будет на Паскале, то перевести в СИ, а?

-------
Истина где-то рядом...


Отправлено: 18:52, 08-12-2001 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Помогите, срешением задач! С++

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Как сделать активным пункт вызова Диспетчера задач в контекстном меню Панели задач? iron felix Microsoft Windows 2000/XP 3 29-11-2013 07:43
Разное - SP2 , нет понели задач и значков на рабочем столе + диспечер задач не открывается McIntosh Лечение систем от вредоносных программ 6 10-04-2010 13:08
Интерфейс - [решено] помогите с панелью задач ) azanny Microsoft Windows 2000/XP 6 20-09-2009 09:38
C/C++ - Помогите с решнием задач:) DruOleg Программирование и базы данных 3 25-02-2009 01:22
Доступ - Помогите с правами доступа в Диспетчере задач. NFS_Daemon Microsoft Windows 2000/XP 0 08-01-2009 11:26




 
Переход