Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.12.2011, 23:47   #1
Дархан555
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 22
Восклицание ЗАДАЧИ С++

Помогите пожалуйста выполнить задачи в программе С++!!!Может они уже у кого то были?!

Напишите программу, которая находит число а, если а=(253+b)*n, где n – ваш порядковый номер в классном журнале.

Напишите программу, которая по трем вве¬денным числам определит и выведет на экран число, имеющее в своем составе меньше всего двоек.

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

Напишите перегруженную функцию, которая будет добавлять цифру L в конец числа P.

Напишите программу, которая отсортирует массив целых чисел по возрастанию (убыванию) между максимальным и минимальным значением массива.

Напишите программу, которая определит, правильно ли рас¬ставлены скобки в выражении, если оно состоит из скобок типа: ( ), [ ], { }.
Дархан555 вне форума Ответить с цитированием
Старый 24.12.2011, 00:22   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,865
По умолчанию

Шрифт тяжело читается.
Arigato вне форума Ответить с цитированием
Старый 24.12.2011, 00:23   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

У него три темы таких в разных разделах! Можете поискать по удобочитаемей! )
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 24.12.2011, 00:40   #4
Дархан555
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
У него три темы таких в разных разделах! Можете поискать по удобочитаемей! )
смотрю я какой вы внимательный)Да если честно просто когда первую тему создал самого не устроил шрифт, потом когда 2 так же)ну вот и пришлось 3 раз создовать)
Дархан555 вне форума Ответить с цитированием
Старый 24.12.2011, 00:42   #5
Дархан555
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Шрифт тяжело читается.
Извините)как получилось!Ну вот могу так:
Думаю будет видно и хорошо читаться)

Напишите программу, которая находит число а, если а=(253+b)*n, где n – ваш порядковый номер в классном журнале.

Напишите программу, которая по трем вве¬денным числам определит и выведет на экран число, имеющее в своем составе меньше всего двоек.

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

Напишите перегруженную функцию, которая будет добавлять цифру L в конец числа P.

Напишите программу, которая отсортирует массив целых чисел по возрастанию (убыванию) между максимальным и минимальным значением массива.

Напишите программу, которая определит, правильно ли рас¬ставлены скобки в выражении, если оно состоит из скобок типа: ( ), [ ], { }.
Дархан555 вне форума Ответить с цитированием
Старый 24.12.2011, 00:46   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Думаю может тебе стоит наработки показать?
Ну или оставить одну тему во фрилансе!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 24.12.2011, 01:18   #7
Дархан555
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Hacker19_90 Посмотреть сообщение
Думаю может тебе стоит наработки показать?
Ну или оставить одну тему во фрилансе!
Ну могу показать методические рекомендации к ним)
Ну я думаю, что администраторы и модераторы решат этот вопрос)

Это МТ к 1 задаче:
Написать программу, которая переводит температуру в градусах по Фаренгейту в градусы Цельсия по формуле: С=5/9(F-32), где С – температура по Цельсию, а F – температура по Форенгейту.
Перед написанием любой программы надо четко определить, что в ней требуется ввести и что мы должны получить в результате. В данном случае: в качестве исходных данных выступает одно вещественное число – температура по Цельсию, в качестве результата – другое вещественное число.
#include<iostream.h>
Int main() { //1
float fahr.cels: //2
cout <<end1<<”Введите температуру по Форенгейту”<<end1; //3
cin>>fahr; //4
cels=5/9*(fahr-32); //5
cout<<”По Форенгейту”<<fahr<<”в градусах Цельсия”<<cels<<end1; //6
return 0; //7
}
Рассмотрим каждую строку программы отдельно.
В начале программы записана директива препроцессора (препроцессором называется предварительная фаза компиляции, то есть перевода программы с С++ на машинный язык), по которой к исходному тексту программы подключается заголовочный файл <iostream.h>. Это текстовый файл, который содержит описания элементов стандартной библиотеки, необходимых для выполнения ввода-вывода. Если говорить более конкретно, то в этом файле описан набор классов для управления вводом/выводом, стандартные объекты-потоки cin для ввода с клавиатуры и cout для вывода на экран, а также операции помещения в поток << (вывода на экран) и извлечения из потока >> (ввода с клавиатуры).
Примечание: объектами в данном упражнении пользуемся как данностью (дальнейшее изучение).
Внимание: директивы препроцессора записываются в отдельной строке, перед знаком # могут находиться только пробельные символы.
Программа на С++ состоит из функций.
Функция – это именованная последовательность операторов. Она состоит из заголовка и тела. Строка, помеченная комментарием 1, представляет собой заголовок главной (а в данном случае и единственной) функции программы. Она должна иметь имя main, указывающее, что именно с нее требуется начинать выполнение.
Заголовок любой функции пишется по определенным правилам. За именем функции в скобках обычно следует список передаваемых ей параметров. В данном случае он пуст, но скобки необходимы для того, чтобы компилятор мог распознать, что это именно функция, а не другая конструкция языка. Перед именем записан тип значения (int – целое), возвращаемого функцией в точку ее вызова (в данном случае – во внешнюю среду). По стандарту главная функция должна возвращать целочисленное значение. Забегая вперед, этим занимается оператор 7. Впрочем многие компиляторы реагируют спокойно и в случае, если функция ничего не возвращает.
После круглых скобок в фигурных скобках записывается тело функции, то есть те операторы, которые требуется выполнить. Для удобства восприятия принято располагать тело с отступом в 3-4 позиции от заголовка. Обратите внимание, что закрывающаяся скобка находится в той же колонке, что и первый символ заголовка функции. Это требование хорошего стиля, а не синтаксиса.
Для хранения исходных данных и результатов надо выделить достаточно места в оперативной памяти. Для этого служит оператор 2. В нашей программе требуется хранить два значения: температуру по Цельсию и температуру по Фаренгейту, поэтому в операторе определяются две переменные. Одна для хранения температуры по Фаренгейту, названа fahr, другая по Цельсию – cels.
Внимание: имена переменные дает программист, исходя из их назначения. Имя может состоять только из латинских букв, цифр и знака подчеркивания и должно начинаться не с цифры. От того, насколько удачно подобраны имена в программе, зависит ее читаемость – одна из важных характеристик программы.
При описании любой переменной нужно указать ее тип, чтобы компилятор знал, сколько выделить места в памяти, как интерпретировать значение переменной (то есть ее внутреннее представление), а также какие действия можно будет выполнять с этой величиной. Например, для вещественных чисел в памяти хранится мантисса и порядок, а целые представляются просто в двоичной форме, поэтому внутреннее представление одного и того же целого и вещественного числа будет различным. Более того, для действий с целыми и вещественными величинами формируются различные наборы машинных команд. Поэтому-то указание типа для каждой переменной является таким важным.
Дархан555 вне форума Ответить с цитированием
Старый 24.12.2011, 01:20   #8
Дархан555
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 22
По умолчанию

Методические рекомендации ко 2 задачи
Построены на выполнении задачи
Разветвленные программы
Пример 1
Рассмотрим программу, которая по введенному числу n вычис¬лит n!.
Примечание
Из математики известно, что n! = 1*2*...*n.
Код данной программы выглядит следующим образом:
#include <iostream.h>
#include <conio.h>
main()
{
int n, My_res, i;
My_res=l; // Начальное значение переменной
cin>>n; // Требует ввод числа п
for (i=2; i<=n; i++)
My_res=My_res * i;
cout<<My_res; // Выводит результат на экран
getch(); // Задерживает экран
return 0; // Завершает программу
}
Проследим работу алгоритма. Определим такую переменную My_res, в которой будет храниться произведение числа i на ранее полученное произведение на i-ом шаге. Вначале значение пере¬менной равно единице:
My_res=l;
Для перебора всех чисел отрезка [2; n] будем использовать структуру повторений for. На i-ом шаге будем умножать теку¬щее произведение (My_res) на i.
for (i=2; i<=n; i++) My_res=My__res * i ;
Левая граница отрезка равна не единице, а двойке, т. к. бессмыс¬ленно умножать единицу на единицу.
Проследим изменения переменной My_res при n=3.
My_res=l; // Начальный шаг
i=2; // Берется первое число из отрезка
My_res=l*2=2; // Вычисляется произведение
i=3; // Берется следующее число из отрезка
My_res=2*3=6; // Вычисляется произведение

Пример 2
В данном примере представлена программа, которая по трем вве¬денным числам определит и выведет на экран число, имеющее в своем составе больше всего единиц.
#include <iostream.h>
#include <conio.h>
main()
{
int a, b, c, temp, kol_vo_l, kol_vo_2, kol_vo_3;
int copy_a, copy_b, copy_c;
cin>>a>>b>>c; // Требует ввода трех чисел
kol_vo_l=0; // Обнуляет переменную
kol_vo_2=0; // Обнуляет переменную
kol_vo_3=0; // Обнуляет переменную
сору_а=а; // Снимает копию с числа а
copy_b=b; // Снимает копию с числа b
сору_с=с; // Снимает копию с числа с
// Запускаем цикл while, который будет работать, пока
// значение переменной сору_а не станет равным нулю
while (сору_а!=0)
{
temp=copy_a&10; // Отделяет последнюю цифру числа
сору_а/=10; // Удаляет последнюю цифру из числа
// Если цифра, которую мы отделили, равна единице,
// то увеличивает счетчик
if (temp==l) kol_vo_l++;
}
// Запускаем цикл while, который будет работать, пока
// значение переменной сору_b не станет равным нулю whi1е (сору_b!= 0)
{
temp=copy_b&10; // Отделяет последнюю цифру числа
сору__b/=10; // Удаляет последнюю цифру из числа
// Если цифра, которую мы отделили, равна единице,то увеличивает счетчик
i f (temp==1) kol_vo_2++;
}
// Запускаем цикл while, который будет работать, пока
// значение переменной сору_с не станет равным нулю
while (сору_с!=0)
{
temp=copy_c&10;
сору_с/=10;

if (temp==l) kol_vo_3++;
}
if (kol_vo_l>kol_vo_2 && kol_vo_l>kol_vo_3) cout<<a; else
if (kol_vo_2>kol_vo_3) cout<<b; else cout<<c;
getch();
return 0;
}
На первом шаге алгоритм снимает копии с введенных чисел. Это необходимо для того, чтобы не потерять их значения:
сору_а=а;
copy_b=b;
сору_с=с;
Теперь следует проверить все цифры каждого числа, если неко¬торая из них равна единице, то будем увеличивать счетчик на единицу. Каждой переменной назначим свой счетчик (kol_vo_1 – первой, kol_vo_2 – второй, kol_vo_3 – третьей). Проверить каж¬дую цифру числа можно при помощи вычисления остатка от де¬ления числа на 10. После проверки цифры необходимо удалить ее из числа. Это можно сделать, округлив результат деления. Итак, необходим цикл, который на каждом шаге будет выделять по¬следнюю цифру числа, сравнивать ее с единицей и затем удалять:
whi1е (сору_а!= 0)
temp=copy_a&10 ;
сору_а/=10;
if (temp==l) kol_vo_l++;
}
Цикл продолжает свою работу, пока число не станет равным ну¬лю. Это будет означать, что все цифры числа проверены.
Данную операцию необходимо выполнить еще для двух чисел:
while (copy_b!=0)
{
temp=copy_b&10 ;
copy_b/=10;
if (temp==l) kol_vo_2++;
}
while (copy_c!=0)
{
temp=copy_c&10;
copy_c/=10;
if (temp==l) kol_vo_3++;
}
Затем сравниваем переменные kol_vo_1, kol_vo_2 и kol_vo_3 и вы¬водим на экран число, которое соответствует счетчику с большим значением:
if (kol_vo_l>kol_vo_2 && kol_vo_l>kol_vo_3) cout<<a; else
if (kol_vo_2>kol_vo_3) cout<<b; else cout<<c;
getch();
return 0;
}
Дархан555 вне форума Ответить с цитированием
Старый 24.12.2011, 01:23   #9
Дархан555
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 22
По умолчанию

Методические рекомендации к 3 задаче:
Построены на выполнении задачи

Рекурсия
Рекурсивным называется объект, частично состоящий или опре¬деляемый с помощью самого себя. Факториал — это классический пример рекурсивного объекта. Факториал числа п — это произведение целых чисел от 1 до п. Обозначается факториал числа п так: п!.
Согласно определению,
п! = 1*2*3* ... *(п - 1)*п.
Приведенное выражение можно переписать следующим образом:
п! = п*(( п-1)*(п-2)*...*3*2*1) = п*( п -1)!
То есть факториал числа п равен произведению числа п на фак¬ториал числа (п - 1). В свою очередь факториал числа (п - 1) — это произведение числа (п - 1) на факториал числа (п - 2) и т. д.
Таким образом, если вычисление факториала числа п реализовать как функцию, то в теле этой функции будет инструкция вызова функции вычисления факториала числа (п - 1), т. е. функция бу¬дет вызывать сама себя. Такой способ вызова называется рекур¬сией, а функция, которая обращается сама к себе, называется ре¬курсивной функцией. Рекурсивная функция работает, пока значение п –i не станет равным единице.
Далее приведено решение задачи.
#include <iostream.h>
#include <conio.h> t
#include <process.h>
int i, ch, N, My_res;
v oid factorial(int ch); // Прототип функции
main()
{
cin>>N; // Требует ввода числа
My_res=l; // Начальное значение результата
factorial(N); // Вызывает рекурсивную функцию с начальными параметрами
}
void factorial (int ch) // Описание функции
{
if (ch==l)
{
cout<<My_res;
getch();
exit(l);
}
My_res*=ch; // Умножает результат на очередное число
factorial(ch-1); // Функция вызывает саму себя с новым параметром
Рассмотрим простейший пример шаблона функции. Описанию функции должен предшествовать список параметров шаблона:
template <class A, class В, ..., class Z>
Здесь А, в,z — условные обозначения типов переменных.
Примеры программ с использованием функций
Пример 1
Рассмотрим задачу о Ханойских башнях. Имеются три стержня с-номерами 1, 2, 3. На стержень 1 надето п дисков различного диа¬метра так, что они образуют пирамиду (рис. 3.1). Требуется на¬писать программу для печати последовательности перемещений дисков со стержня на стержень, необходимых для переноса пирамиды со стержня 1 на стержень 2 при использовании стержня 3 в качестве вспомогательного. При этом за одно перемещение должен переноситься только один диск, и диск большего диамет¬ра не должен помещаться на диск меньшего диаметра. Доказано, что для п дисков минимальное число необходимых перемещений равно 2n - 1.
В простейшем случае, когда пирамида состоит только из одного диска, необходимо выполнить одно действие — перенести диск со стержня 1 на стержень 2. В общем случае будем переносить п дисков со стержня i на стержень j, считая стержень w вспомога¬тельным. Сначала следует перенести п - 1 диск со стержня i на стержень w при вспомогательном стержне j, затем перенести один диск со стержня i на стержень j и, наконец, перенести п - 1 диск из w на стержень j, используя вспомогательный стержень i. Итак, задача о переносе п дисков сводится к двум задачам о пе¬реносе п - 1 диска и одной простейшей задаче. Схематически это можно записать так:
T(n, i, j, w) = T(n - 1, i, w, j) + T(1, i, j, w) + T(n-1, w, j, i).

Рассмотрим полный код программы с комментариями.
#include <iostream.h>
#include <conio.h>
void tn(int, int, int, int); // Прототип функции
main()
{
int n;
cin>>n; // Требует ввода количества дисков
rec(n, 1, 2, 3); // Запускает рекурсивную функцию с начальными параметрами
getch(); // Задерживает экран
return 0; // Завершает программу
}
void rec(int n, int i, int j, int w) // Описание функции
{
if (n>l) // Если дисков больше чем один, то...
{
rec (n-l,i,w, j) ; // Вызывает функцию с новыми параметрами
rec (l,i,j,w); // Вызывает функцию с новыми параметрами
rec (n-l,w,j,i); // Вызывает функцию с новыми параметрами
else cout<<i<<" "<<j<<endl; // Выводит результат
return; // Завершает работу функции
}
Данная программа состоит из рекурсивных функций типа int и одной главной функции main(). Так как в программе исполь¬зуются функции, то необходимо записать их прототип: int rec(int);
Главная функция считывает с экрана два операнда, а затем каж¬дый из них передает как параметр в функцию:
cin>>K*L; Sum_P=rec(К); Sum_L=rec(L);
Когда функция rec (int) завершит свою работу и компилятор снова перейдет к главной функции, то последует выбор наи¬большей суммы и вывод числа, которое ей соответствует:
if (Sum_P>Sum_L) cout«K; else cout«L; getch(); return 0,-
}
Рассмотрим рекурсивную функцию.
Функция суммирует все цифры числа за несколько шагов. На первом шаге отделяется последняя цифра числа и прибавляется к общей сумме цифр. После того как цифра просуммирована, она удаляется из числа. Значение общей суммы присваивается пере¬менной Sum:
int rec(int Number) {
Sum+=Number%10; Number=Number/10;
Проверку выполняет оператор if:
if (Number==0) return Sum; rec(Number);
}
Дархан555 вне форума Ответить с цитированием
Старый 24.12.2011, 01:24   #10
Дархан555
Пользователь
 
Регистрация: 20.12.2011
Сообщений: 22
По умолчанию

Методические рекомендации к 4 задаче:
Построены на выполнении задачи

Рассмотрим перегруженную функцию swap(х,у), которая меняет местами значения переменных х и у.
Перед применением перегруженной функции необходимо снача¬ла написать заголовочный файл swap.h, который и будет менять местами значения переменных. Далее приведен его код.
void swap(int &х, int &у) // Для чисел типа int
{int cemp=x; х=у; y=temp;}; // Меняет местами значения переменных
void swap(double &х, double &у) // Для чисел типа double
{double temp=x; х=у; y=temp; } ;
void swap(long &x, long &y) // Для чисел типа long
{long temp=x; x=y; y=temp;};
Этот файл следует сохранить на жестком диске под именем swap.h.
В основной программе необходимо подключить файл swap.h для использования функции swap(х,у). Код основной программы выглядит следующим образом:
#include <iostream.h>
#include <conio.h>
#include "F:/Swap.h" // Созданный заголовочный файл
main()
{
cout«"x= "; // Выводит сообщение о готовности принять первый операнд
cin»x; // Требует ввода первого операнда
cout«"y ="; // Выводит сообщение о готовности принять второй операнд
cin»y; // Требует ввода второго операнда
// Выводит значения переменных до обмена
cout«"До обмена: "«endl«"x= "«x«" у= "«y;
swap(x,y); // Вызывает функцию для обмена значений двух переменных
// Выводит значения переменных после обмена
cout«"После обмена"«endl«"x= "«x«" у= "«у;
getch(); // Задерживает экран
return 0; // Завершает программу
}
Дархан555 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на С++ Nemisoi Фриланс 7 06.10.2011 22:55
4 задачи в системе Mathematica(задачи уже решены) Toni Milano Фриланс 2 08.02.2011 19:28
Задачи в делфи. информационная модель задачи. @leks@ Помощь студентам 2 17.10.2010 19:15
Задачи Настена Помощь студентам 1 18.12.2007 06:45