Консультация № 161642
28.02.2009, 22:05
0.00 руб.
0 4 2
Уважаемые эксперты помогите с следующими задачами:
1) Удвоить в тексте каждую литеру. Текст находится в текстовом файле.
2) Вычислить значение функции в заданной точке x.
3) Определить, есть ли среди цифр заданного n - значного целого числа одинаковые цифры.
4) Найти сумму четных чисел в интервале от m до n. Числа m и n задаются при вводе.
Заранее благодарен.

Обсуждение

Неизвестный
01.03.2009, 11:29
общий
А функция-то задана? Точка x задана, а функция?
Неизвестный
01.03.2009, 13:46
общий
это ответ
Здравствуйте, Xz1991xz!
Код к четвертой задаче:
Код:
//Проверялся в Microsoft Visual C++ 2008 Express Edition 
#include "stdafx.h"
#include "iostream"

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
//Переменные m и n
int m, n;
//Получаем m и n
cout << "m, n: ";
cin >> m >> n;
//Сумма
int sum = 0;
//цикл в котором перебираем все в интервале (m; n)
for (int i = m + 1; i < n; i++)
{
//Если остаток от деления числа на 2 равен 0, то число четное и прибавляем его к сумме
if (i % 2 == 0)
{
sum += i;
}
}
//выводим результат
cout << "result: " << sum << endl;
system("PAUSE");
return 0;
}

Удачи!!!
Неизвестный
01.03.2009, 19:29
общий
04.03.2009, 11:15
это ответ
Это исправленная версия моей программы для вашего задания №3: "Определить, есть ли среди цифр заданного n - значного целого числа одинаковые цифры."
Вот код программы:

//---------------------------------------------------------------------------

#include <vcl.h>
#include <iostream.h>
#pragma hdrstop
#pragma argsused

//---------------------------------------------------------------------------

// Формирование делителя для выборки отдельных цифр числа
int set (int set_i, int count)
{
int result = 1, difference = (count - set_i);
for (int i = 1; i <= difference; ++i)
result *= 10;

return result;
} // set

//---------------------------------------------------------------------------

// Сравнение двух цифр
bool comp (int f_digit, int s_digit)
{
bool r;
if (f_digit != s_digit)
return r;
else return !r;
} //comp

//---------------------------------------------------------------------------

int main(int argc, char* argv[])
{
int number, ver, check = 0, counter,
first_digit, second_digit;
bool res;

cout << "Vvedite simvol EOF po okon4aniu vvoda.\n" <<
"Chislo ne mojet na4inat`sya s "0".\n" << "Vvedite chislo: ";
cin >> number;

while ((ver = cin.get()) != EOF) // Программа завершается, когда
// пользователь жмёт Ctrl+Z
{
res = false; // Одинаковых цифр нет
counter = 1;
check = number / 10;

while (check != 0) // Нахождение кол-ва цифр в числе
{
check /= 10;
counter++;
}

while (counter != 1)
{
if (res == true) break;
for(int j = 1, k; j < counter; ++j)
{
first_digit = number / set(j, counter) % (k = 10);
second_digit = number % set(counter - 1, counter);
res = comp(first_digit, second_digit);
if (res == true)
{
cout << "Chislo imeet odinakovble cifrbl.\n";
break;
}
}
number /= 10; // Уменьшение числа на одну цифру с конца
check = number / 10;
counter = 1;
while (check != 0) // Пересчёт кол-ва цифр получившегося числа
{
check /= 10;
counter++;
}
}
if (res == false) cout << "Chislo ne imeet odinakovblh cifr.\n";
cout << "Vvedite chislo: ";
cin >> number;
}
return 0;
}
//---------------------------------------------------------------------------

ЗЫ: эту прогу можно сделать и через массивы и через строки и ещё бог знает как, что гораздо легче. Но так как вы не сказали, как именно решать эту задачу, то я предпочёл сделать её с помощью самых начальных знаний и наиболее близко к аналогичному решению в математике или комбинаторике.
давно
Мастер-Эксперт
680
2811
01.03.2009, 20:34
общий
Hromovnik046, желательно бы еще и номер задания писать.
Ну, просто, знаете ли, так принято... Посмотрите в ответе Абельхарисова Руслана/Marked One.
Форма ответа