Форум программистов, компьютерный форум CyberForum.ru

Введенные значения переменных a, b, c поменять местами так, чтобы оказалось a>=b>=c - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Типы и структуры данных. Задача http://www.cyberforum.ru/cpp-beginners/thread785869.html
Задача Смоделировать операцию сложения двух целых чисел длиной до 30 десятичных цифр каждое. Результат выдать в форме (zn) 0.m E N, где длина мантиссы m до 30 значащих цифр, а величина порядка N - до 5 цифр (zn)-знак числа E-основание числа N,N1-величина порядка *запись числа (zn) 0.m E N соответствует записи числа (zn) 0.m *10^N буду очень признателен человеку который не только...
C++ условия прекращения записи Ребята, вот такая у меня программа. Мне нужно ввести список имен, который попадает в контейнер list. Там они соответственно сортируются по алфавиту, а потом мне нужно загрузить их в файл, и чтобы каждое имя было на отдельной строке. Я решил это сделать, создав итератор вывода, который использует вместо cout мой поток записи. Хорошая новость - СРАБОТАЛО!!! :). А вот плохая, что после вывода поток... http://www.cyberforum.ru/cpp-beginners/thread785866.html
C++ Программа перевода чисел из СС
unsigned char X; int i, k; scanf("%d",&X); for (i=7; i>=0; i--) { k = ((X >> i) & 1); printf("%d", k); } Программа перевода чисел из 10ной СС в 2ную СС. Объясните пожалуйста, что значит 7-ая строчка.И почему после того,как программа выводит на экран число в двоичном виде, выскакивает окно с ошибкой "debug error"? Можно ли как-нибудь написать эту же программу только через...
Почему выдаёт ошибку? Вроде всё правильно! C++
C++ Контейнеры (функция, которая бы помогла отсортировать контейнер List) http://www.cyberforum.ru/cpp-beginners/thread785815.html
составить булевскую функцию, которая бы помогла отсортировать контейнер List. контейнер содержит элементы типа string. я эту функцию вставлю в sort.
C++ SMTP Отправка файла на почту Здравствуйте! Вот пытаюсь дописать код для отправки файлов на почту, код взял здесь на форуме. Всё дело в том что не отправляет файлы больших размеров, от файла приходит только 7 байт. Что можно сделать?! #include <iostream> #include <fstream> #include <windows.h> #pragma pack(1) #pragma comment(lib,"Ws2_32.lib") using namespace std; подробнее

Показать сообщение отдельно
MrGrig
176 / 159 / 2
Регистрация: 08.10.2012
Сообщений: 422
15.02.2013, 07:06     Введенные значения переменных a, b, c поменять местами так, чтобы оказалось a>=b>=c
Цитата Сообщение от Venom33 Посмотреть сообщение
меня только этот вопрос интересует так поему же в разных циклах написано? почему не в одном?
Не коректный вопрос. func это это внешняя функция. Внешние функции используют для:
1. Уменьшение количества кода
2. Уменьшение расхода динамической памяти
3. Улучшение читабельности кода
4. Особый случай когда функция рекурсивна и должна вызывать саму себя

в данном случае функция выполняет 1 и 3 момент.
т.е. смысл мне 3 раза менять местами переменные, если я могу 1 раз написать функцию и во входные данные кидать нужные мне значения.
2. случай тут не особо виден. Когда из мэйна идет переход в другую функцию, все элементы которые там создаются и никаким явным или неявным способом не передаются из неё удаляются после завершения.
Для примера функция, на вход подается строка или указатель/ссылка на строку, не особо важно. строку нужно разбить на слова и вернуть обратно список слов. Мы заранее не знаем, сколько у нас слов строке, какого размера строка и т.д. Мы можем лишь предполагать. В функции мы можем создать чаровский двумерный массив (пусть будет buf) 1000 на 1000 элементов (это значит в него можно поместить 1000 отдельных подстрок длиною в 999 символов + нольбайт). Далее разбиваем слова вставляем каждое слово в отдельную ячейку массива buf. После проделанной операции мы уже точно знаем сколько слов у нас хранится во временном массиве. создаем динамический 2мерный массив размерностью m - количество строк в buf. И далее в цикле выделяем памяти ромно столько , какая длина слова в подстроке buf[i]. В итоге у нас получается на масив 1000х1000, на например 324хN где N - длина подстроки в каждом из подстрок. Чтобы было понятней вот так покажу.
C++
1
2
3
4
5
6
7
8
9
//вот так будет выглядеть статический массив
1 1 1 1 1 0 0 0
1 1 1 0 0 0 0 0
1 1 1 1 1 1 1 0
1 1 1 1 1 1 1 0
1 1 0 0 0 0 0 0
1 1 1 1 0 0 0 0
1 0 0 0 0 0 0 0
1 1 1 1 1 0 0 0
C++
1
2
3
4
5
6
7
8
9
//А так динамический
1 1 1 1 1
1 1 1
1 1 1 1 1 1 1
1 1 1 1 1 1 1
1 1
1 1 1 1
1
1 1 1 1 1
для чего это?
а для того. тип char "весит" 1 байт => массив 1000х1000 будет весить 1000000 байт = 976 килобайт. А если быть точно уверенным что текст у нас будет максимально большой то сделать массив 10000х1000 такой уже будет весить 9.5 мегобайт. Только вот смысл ворочать им в теле программы если он нужно от него от силы 20-30% и нужен он нам лишь для того чтобы разбить строку на подстроки. В итоге после действия программы мы получим массив который будет мало "весить". А та здоровая дура самоаннигилируется после выполнения функции. Причем время выполнения её будет пару сотен миллисекунд. Вот в общем то зачем пишутся функции. Про рекурсию смысла нет особого рассказывать, т.к. чувствую ваш уровень не достаточен чтобы с моих слов её понять =)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru