Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 23.01.2010, 13:25   #1 (permalink)
dtank
Новичок
 
Регистрация: 22.01.2010
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Помогите решить задачи на С++

  • Помогите решить задачи на С++ до воскресного вечера 24.01.10. Очень срочно надо получить зачет.
  • Хоть путь решения, хоть что-нибудь...


1. Написать две взаимосвязанных процедуры кодирования и восстановления дискретных сообщений (ДС) по их коду, если механизм коди¬рования заключается в первоначальной инверсии порядка слов в ДС, а затем инверсии порядка букв внутри слов. (например, "волк"-->"колв").

2. Найти наименьшее общее кратное двух длинных целых чисел.

3. Написать алгоритм вычисления арифметических выражений, содержащих в качестве операндов только однозначные целые положительные числа, если выражения записаны в постфиксной форме.(Моделирование и использование стеков, деков и очередей.)
dtank вне форума   Ответить с цитированием

Старый 23.01.2010, 13:25
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Безусловно схожие по содержанию темы вам должны чем то быть полезны

Помогите решить задачи на C++
Помогите решить задачи на C++
Помогите пожалуйста решить задачи
Помогите решить две задачи в С++

Старый 23.01.2010, 19:45   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

По третьей задаче: http://www.tehnari.ru/198317-post16.html
Дальше по теме там есть исправление кода, смотрите внимательнее.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 23.01.2010, 20:18   #3 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Предлагаю такой вариант, но в нем не обрабатывается ситуация предельных значений длинного целого, так как НОК также имеет тип длинное целое, что может вызвать переполнение типа.
Код:
#include <iostream>

using namespace std;
int main(int argc, char *argv[])
{
  long a,b;
  long nok;
  char buf[256];
  CharToOem("Введите значение a ", buf);
  cout << buf;
  cin >>a;
  CharToOem("Введите значение b ", buf);
  cout << buf;
  cin >>b;    
  if (a>b)
  {
      nok=a;
   }
   else
   {
        nok=b;
   }
   char rez=0;
   long o1;
   long o2;
   while (rez<1)
   {
      o1=nok%a;
      o2=nok%b;
      if ((o1==0) && (o2==0)) 
      {
           rez++;
      } 
      else 
      {
           nok++;
       }
   }
   cout << "\n nok=" << nok;
    system("PAUSE");
    return EXIT_SUCCESS;
}
Скорость работы программы также оставляет желать лучшего, но, во всяком случае, НОК вычисляется, хотя не исключены ошибки.
__________________
Убить всех человеков!

Последний раз редактировалось Long Cat; 25.01.2010 в 00:06
AlexZir вне форума   Ответить с цитированием
Старый 24.01.2010, 19:55   #4 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от dtank Посмотреть сообщение
1. Написать две взаимосвязанных процедуры кодирования и восстановления дискретных сообщений (ДС) по их коду, если механизм коди¬рования заключается в первоначальной инверсии порядка слов в ДС, а затем инверсии порядка букв внутри слов. (например, "волк"-->"колв").
Думаю, тут нужно обрабатывать строку как массив символов. Для шифрования можно скопировать массив в другой но в обратном порядке, потом скопировать первый и последний элементы без изменения номера, а остальные опять в обратном порядке.
Для дешифровки поступить в обратном порядке.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 25.01.2010, 00:15   #5 (permalink)
Long Cat
Banned
 
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
По умолчанию

По поводу задачи номер два - смотрите Википедию Наименьшее общее кратное — Википедия

Алгоритм шифрования в задаче 3 сформулирован в условии задачи: поменять местами слова, затем поменять местами буквы в словах.
Long Cat вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 25.01.2010, 06:53   #6 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Если вы про эту формулу: http://upload.wikimedia.org/math/9/b...f5bb7845bd.png, значит, попробую переделать под нее. Потом листинг проверьте, пожалуйста, если вас не затруднит. И спасибо большое за подсказку.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 25.01.2010, 06:55   #7 (permalink)
Long Cat
Banned
 
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
По умолчанию

Да, я про неё. Однако, срок сдачи уже вышел.
Long Cat вне форума   Ответить с цитированием
Старый 25.01.2010, 08:11   #8 (permalink)
Long Cat
Banned
 
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
По умолчанию

Вы используете Dev-CPP в качестве среды разработки?

Код:
cout << "\n nok=" << nok;
лучше писать как
Код:
cout << endl <<" nok=" << nok;
Long Cat вне форума   Ответить с цитированием
Старый 25.01.2010, 11:12   #9 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Сообщение от Long Cat Посмотреть сообщение
Вы используете Dev-CPP в качестве среды разработки?

Код:
cout << "\n"
лучше писать как
Код:
cout << endl
то есть эти команды эквивалентны? Да, именно эту среду использую.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 25.01.2010, 11:17   #10 (permalink)
Long Cat
Banned
 
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
По умолчанию

Технически, не совсем. Под Windows это будет:
cout << "\r\n"
Под UNIX:
cout << "\n"
У этих ОС разные представления о том, чем должны заканчиваться строки.
Советую перейти на Code::Blocks: более стабильна и отладчик корректно работает.
Long Cat вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:35.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.