Рекурсия и массивы

  • Автор темы snickers
  • Дата начала
S

snickers

#1
1)написать рекурсивную функцию перевода десятичного числа в двоичную систему счисления
2)Описать структуру FRIDGE(наименование,фирма-изготовитель,количество на складе,цена). Введите данные в массив,состоящий из 5 элементов типа FRIDGE.Выведите на экран информацию о холодильниках,стоимость которых не больше введенного с клавиатуры числа.Если такого холодильника нет,то программа должна выдать соответствующее сообщение на экран.
3)Разработать программу работы с массивом односвязных списков.Программа должна содержать следующие процедуры,вызываемые из меню:
-постоение массива односвязных списков,вводя исходные данные из текстового файлы
-удаление указанного элемента из всех списков в которых он присутствует
-вывод массива списков
 
R

Rififi

#3
snickers

1)написать рекурсивную функцию перевода десятичного числа в двоичную систему счисления

C++:
#include <string>
#include <locale>

std::string dec_to_bin(int i)
{
return i == 1 ? "1" : dec_to_bin(i>>1) + (i & 1 ? "1" : "0");
}

int main()
{
setlocale(LC_ALL, "");

int i = 110;
std::string s = dec_to_bin(i);

return 0;
}

Описать структуру FRIDGE(наименование,фирма-изготовитель,количество на складе,цена). Введите данные в массив,состоящий из 5 элементов типа FRIDGE.Выведите на экран информацию о холодильниках,стоимость которых не больше введенного с клавиатуры числа.Если такого холодильника нет,то программа должна выдать соответствующее сообщение на экран.

C++:
#include <locale>
#include <string>
#include <vector>
#include <algorithm>
#include <iostream>

/*
2)Описать структуру FRIDGE(наименование,фирма-изготовитель,количество на складе,цена).
Введите данные в массив,состоящий из 5 элементов типа FRIDGE.
Выведите на экран информацию о холодильниках,стоимость которых не больше введенного с клавиатуры числа.
Если такого холодильника нет,то программа должна выдать соответствующее сообщение на экран.
*/

struct FRIDGE
{
std::string name;
std::string manufacturer;
size_t amount;
double cost;
};

int main()
{
setlocale(LC_ALL, "");

const size_t N = 5;

typedef std::vector<FRIDGE> ARRAY;
ARRAY arr;

for (size_t i=0; i<N; i++)
{
FRIDGE f;

// ввод данных - сделаешь сам

arr.push_back(f);
}

double cost;
std::cin >> cost;

struct min
{
min(double cost) : cost_(cost) {}
bool operator()(const FRIDGE& f) const
{ return f.cost < cost_; }

double cost_;
};

ARRAY::const_iterator found = std::find_if(arr.begin(), arr.end(), min(cost));
if (found == arr.end())
{
std::cout << "not found." << std::endl;
return 0;
}

do
{
std::cout << found->name << std::endl;
std::advance(found, 1);
} while((found = std::find_if<ARRAY::const_iterator>(found, arr.end(), min(cost))) != arr.end());

return 0;
}

Разработать программу работы с массивом односвязных списков.

не.. это лень (:)

убьют если не сдам )

Не волнуйся, от драинья сортиров ещё никто не умирал... Ну если только от смрада ;)
Но и в данном случае есть решение!

ПГ-7 - незаменимый помощник!