![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.12.2011
Сообщений: 22
|
![]() Помогите пожалуйста выполнить задачи в программе С++!!!Может они уже у кого то были?!
Напишите программу, которая находит число а, если а=(253+b)*n, где n – ваш порядковый номер в классном журнале. Напишите программу, которая по трем вве¬денным числам определит и выведет на экран число, имеющее в своем составе меньше всего двоек. Напишите программу, которая будет переводить числа из десятеричной системы счисления в шестнадцатеричную. Напишите перегруженную функцию, которая будет добавлять цифру L в конец числа P. Напишите программу, которая отсортирует массив целых чисел по возрастанию (убыванию) между максимальным и минимальным значением массива. Напишите программу, которая определит, правильно ли рас¬ставлены скобки в выражении, если оно состоит из скобок типа: ( ), [ ], { }. |
![]() |
![]() |
![]() |
#2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,865
|
![]()
Шрифт тяжело читается.
E-Mail: arigato.freelance@gmail.com
|
![]() |
![]() |
![]() |
#3 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
![]()
У него три темы таких в разных разделах! Можете поискать по удобочитаемей! )
Mess with the best, die like the rest.
![]() Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 20.12.2011
Сообщений: 22
|
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 20.12.2011
Сообщений: 22
|
![]()
Извините)как получилось!Ну вот могу так:
Думаю будет видно и хорошо читаться) ![]() Напишите программу, которая находит число а, если а=(253+b)*n, где n – ваш порядковый номер в классном журнале. Напишите программу, которая по трем вве¬денным числам определит и выведет на экран число, имеющее в своем составе меньше всего двоек. Напишите программу, которая будет переводить числа из десятеричной системы счисления в шестнадцатеричную. Напишите перегруженную функцию, которая будет добавлять цифру L в конец числа P. Напишите программу, которая отсортирует массив целых чисел по возрастанию (убыванию) между максимальным и минимальным значением массива. Напишите программу, которая определит, правильно ли рас¬ставлены скобки в выражении, если оно состоит из скобок типа: ( ), [ ], { }. |
![]() |
![]() |
![]() |
#6 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
![]()
Думаю может тебе стоит наработки показать?
Ну или оставить одну тему во фрилансе!
Mess with the best, die like the rest.
![]() Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
![]() |
![]() |
![]() |
#7 | |
Пользователь
Регистрация: 20.12.2011
Сообщений: 22
|
![]() Цитата:
Ну я думаю, что администраторы и модераторы решат этот вопрос) ![]() Это МТ к 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. Внимание: имена переменные дает программист, исходя из их назначения. Имя может состоять только из латинских букв, цифр и знака подчеркивания и должно начинаться не с цифры. От того, насколько удачно подобраны имена в программе, зависит ее читаемость – одна из важных характеристик программы. При описании любой переменной нужно указать ее тип, чтобы компилятор знал, сколько выделить места в памяти, как интерпретировать значение переменной (то есть ее внутреннее представление), а также какие действия можно будет выполнять с этой величиной. Например, для вещественных чисел в памяти хранится мантисса и порядок, а целые представляются просто в двоичной форме, поэтому внутреннее представление одного и того же целого и вещественного числа будет различным. Более того, для действий с целыми и вещественными величинами формируются различные наборы машинных команд. Поэтому-то указание типа для каждой переменной является таким важным. |
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 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; } |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 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); } |
![]() |
![]() |
![]() |
#10 |
Пользователь
Регистрация: 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; // Завершает программу } |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задачи на С++ | 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 |