Премини към съдържанието

Препоръчан отговор


Здравейте!

Please accept the challenge :)
Зададена ми е следната задача:

Дадени са две големи цели числа N1 и N2(до 100 цифри). Да се напишат програмни фрагменти за:
а) представяне на числата чрез списъци;
б) сравнение на двете числа и отпечатване на резултата - N1>N2 или N1<N2.

Упътване: Големи числа се наричат цели положителни числа с К цифри, където К>255. Големите цели числа могат да се представят с помощта на линеен едносвързан списък, всеки елемент на който съдържа точно една цифра от числото.

Език: С++
Компилатор: Windows Visual Studio C++
Благодаря предварително!

Редактирано от Магдаленаг
Изпуснат елемент и открита пунктуационна грешка. (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ти какво измисли по въпроса, дай да видим част от код, нещо, което дава грешка примерно и не може да я оправиш. Защо всички мислите, че това е форум за безплатно писане на програмен код или решаване на задачи от училище? Там нищо ли не ви учат, защо изобщо ходите?

Редактирано от Радослав Матев (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Е как какво е измислил по въпроса? Пуснал е темата във няколко форума и чака тъпак който да му свърши работата. 

А на училище ходят, щото мама и тати така искат (в противен случай ще се наложи да почват работа).

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Представяне на числата става чрез свързан списък(linked list). Това е лесно, но гадно. Мразя подобен вид структури с особен достъп.
За второто - числата трябва да се вкарват от потребителя или са предварително зададени?
В първия случай може да изхитрееш задължината, във втория трябва да обиколиш списъците, да им намериш дължината.
Ако са еднакви на дължина числата, тогава сравняваш първият елемент от единия списък дали е равен на първия. Ако не е - кой е по-голям. Ако си намерил по-голям - прекъсваш програмата - намеирш си по-голямото число. Ако не - продължаваш.
Ако са с различна дължина, то по-дългото е по-голямо.
Това е изключително тегаво за разписване в програмен код.
Ако имаше чалъм, аз щях да използвам ВЕКТОР.
Ето ти малко информация - https://stackoverflow.com/questions/32599408/comparing-nodes-in-a-linked-list-by-reference

https://www.codementor.io/codementorteam/a-comprehensive-guide-to-implementation-of-singly-linked-list-using-c_plus_plus-ondlm5azr

https://stackoverflow.com/questions/7903190/interview-summing-numbers-in-two-linked-lists

-----------
Аз лично бягам като дявол от тамян от тия свързани списъци. Толкова е тромаво като програмно изпълнение...

Редактирано от Johnny B (преглед на промените)
  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

  • Разглеждащи това в момента   0 потребители

    Няма регистрирани потребители разглеждащи тази страница.

  • Горещи теми в момента

  • Подобни теми

    • от BWB. Eclipto
      Търся помощ за курсовата си работа по програмиране, защото отсъствах близо два месеца поради операция, а не се имам с колегите си.
      задачата гласи :"Съставете алгоритъм и напишете програма за въвеждане координатите на точки и извеждане на екрана координатите на онези от тях, които не лежат в защрихованата област.Въвеждането се прекратява, когато броят на въведените точки стане най-малко М и броят на лежащите в защрихованата област стане N."

      помощ!!
    • от Ester007
      Ако може някой да  се отзове.
      Имам два въпроса:
      Как да изведа брой отличници и студенти със слаб успех?
      Как да изкарам средния успех на групата?
      #include<math.h>//matematicheski funkcii #include <iostream>//vhodno izhodni potoci #include <windows.h>//za system #include <fstream> //za zapis i chetene na fail using namespace std; int main() { int students; int ocenki; int tochki; char ime[30]; SetConsoleOutputCP(1251); SetConsoleCP(1251); int oc2=2; int oc3=3; int oc4=4; int oc5=5; int oc6=6; char otnovo = 'd'; while (otnovo == 'Д' || otnovo == 'д' || otnovo == 'D' || otnovo == 'd') { do { cout << endl << "Моля, въведете брой студенти в групата - от 10 до 16: ";// cin >> students; } while (students < 10 || students >16); for (int i = 1; i < students; i++) { cout << endl << "Студент номер: " << i << endl << endl; for (int i = 0; i < 1; i++) { tochki = rand() % (100 - 30 + 1) + 30; cout << endl << "Точки: " << tochki; } if (tochki <= 49) { cout <<endl<< "Слаб : "<<oc2; } else if (tochki <= 59) { cout << endl << "Среден: "<<oc3; } else if (tochki <= 75) { cout << endl << "Добър: "<<oc4; } else if (tochki <= 89) { cout << endl << "Много добър: "<<oc5; } else if (tochki <= 100) { cout << endl << "Отличен: "<<oc6; } else { cout << "Натиснете клавиш."; } } cout << endl << endl << "Искате ли да започнете отново? Д/Н " << endl << endl; cin >> otnovo; } return(0);  
    • от Ester007
      Здравейте!
      Опитвам се да съставя програма, с която да бъдат записвани часове. Ето и кода, който имам.

      #include <iostream>
      #include<fstream>
      #include<windows.h>
      #include<conio.h>
      #include<stdio.h>

      using namespace std;

      class kabinet
      {
          string day;
          int hour;
          string exam;
          char name[50];
          char address[50];
          int phone[10];
          int age[3];//години
      public:
          void main_menu();//главно меню
          void type_examin();//вид преглед
          void setDay();//въвеждане на  ден
          void setHour();//назоваването на часа
          int check(int);
          void price_menu();//ценова листа на предлаганите услуги
          void showHour();//показване на свободните часове
          void edit();//опция за промяна
          void modifyHour();//промяна на часа
          void delete_hour();//изтриване на запазения час
          void showDisp();//изписване на информацията относно прегледа

      };
      void kabinet::main_menu()
      {
          system("color D1");
          setlocale(LC_ALL, "bulgarian");    //за използване на български език
          system("chcp 1251>0");

          int choice = 0;
          while (choice != 5)
          {
              system("cls");
              
              cout << "                              /      1.Записване на час                 / /  /" << endl;
              cout << "                             /      2.Показване записани часове        / /  /" << endl;
              cout << "                            /      3.Промяна на час                   / /  /" << endl;
              cout << "                           /      4.Ценоразпис                       /  \_/" << endl;
              cout << "                          /      5.Изход                            /    *" << endl;
              cout << "                         /                                         /  " << endl;
              cout << "                        /                                         /  " << endl;
              cout << "                       /                                         /  " << endl;
              cout << "                      /_________________________________________/  " << endl
                  << endl << endl << endl << "Моля въведете своя избор." << endl;
              cin >> choice;

              switch (choice) {
              case 1:system("cls");;
                  type_examin();
                  break;
              case 2: system("cls");;
                  showHour();
                  break;
              case 3: system("cls");;
                  modifyHour();
                  break;
              case 4: system("cls");;
                  price_menu();
                  break;
              case 5:
                  default: {
                  cout << "Благодарим Ви!";
                  cout << "Благодарим Ви, че използвахте нашата система за записване." << endl;
                  _getch();
              }
              }

          }
      }
      void kabinet::type_examin()
      {
          system("cls");
          system("color F6");
          int choiExam = 0;
          string exam;
          while (choiExam != 7)
          {
              cout << endl << endl << endl;

              
              cout << "                               /     1.Медицински преглед                / /  / *" << endl;
              cout << "                              /     2.Диспансерен преглед               / /  /" << endl;
              cout << "                             /     3.Профилактичен преглед             / /  /" << endl;
              cout << "                            /     4.Детска консултация                / /  /" << endl;
              cout << "                           /     5.Женска консултация                /  \_/" << endl;
              cout << "                          /     6.Издаване на документи             /    *" << endl;
              cout << "                         /                                         /  " << endl;
              cout << "                        /     7.Изход                             /  " << endl;
              cout << "                       /                                         /  " << endl;
              cout << "                      /_________________________________________/  " << endl
                  << endl << endl << endl << "Моля въведете своя избор." << endl;
              cin >> choiExam;
              string exam;
              switch (choiExam)
              {
              case 1:
                  exam = "Медицински преглед";
                  setDay(); break;
              case 2: exam = "Диспансерен преглед";
                  setDay(); break;
              case 3: exam = "Профилактичен преглед ";
                  setDay(); break;
              case 4: exam = "Детска консултация";
                  setDay(); break;
              case 5: exam = "Женска консултация ";
                  setDay(); break;
              case 6:  exam = "Издаване на документи ";
                  setDay(); break;
              case 7:break;
              default:
              {
                  cout << "Благодарим Ви!";
                  _getch();
              }
              }
          }
      }
                      void kabinet::setDay()
                      {
                          system("cls");
                          system("color B2");
                          int day;
                          string date;
                          while (day!=5) {
                              cout << endl << endl << endl;
                              cout << "                                  __________________________________   " << endl;
                              cout << "                                 /                                 /  " << endl;
                              cout << "                                /                                 /  " << endl;
                              cout << "                               /     1.Понеделник                /  " << endl;
                              cout << "                              /     2.Вторник                   /  " << endl;
                              cout << "                             /     3.Сряда                     /  " << endl;
                              cout << "                            /     4.Четвъртък                 /  " << endl;
                              cout << "                           /     5.Петък                     /  " << endl;
                              cout << "                          /                                 /  " << endl;
                              cout << "                         /                                 /  " << endl;
                              cout << "                        /_________________________________/  " << endl
                                  << endl << endl << endl << "Моля въведете своя избор." << endl;
                              cin >> day;

                              switch (day)
                              {
                              case 1:
                                  date = " Понеделник ";
                                  setHour();
                                  break;
                              case 2: date = " Вторник ";
                                  setHour();
                                  break;
                              case 3: date = " Сряда ";
                                  setHour();
                                  break;
                              case 4: date = " Четвъртък ";
                                  setHour();
                                  break;
                              case 5: date = " Петък ";
                                  setHour();
                                  break;
                              default:{
                                  cout << "Грешен избор";
                                  _getch();
                              }
                          }
                      }
                  }

                  void kabinet::setHour()
                  {
                      system("cls");
                      system("color C3");
                      string custumer;
                      string day;

                      int c, flag;

                      ofstream fout("Записани", ios::app);
                      cout << endl << endl << " Въведете час: ";
                      cin >> c;
                      flag = check(c);
                      if (flag)
                      {
                          cout << "-----------------------------------" << endl;
                          cout << "   Избраният от Вас час е зает.    " << endl;
                          cout << "-----------------------------------" << endl;
                          cout << "      Моля, въведете друг.         " << endl;
                          cout << "-----------------------------------" << endl;
                      }
                      else
                      {
                      hour = c;
                      cout << endl << endl << "Въведете име и фамилия: ";
                      gets(name);
                      cout << "Адрес: ";
                      gets(address);
                      cout << " Телефонен номер: ";
                      gets(phone);
                      cout << endl << endl << "Възраст: ";
                      gets(age);
                      fout.write((char*)this, sizeof(kabinet));
                      cout << "Успешно записан час!";
                  }
                      cout << "Натиснете, който и да е клавиш, за да продължите!!!";
                      _getch();
                      fout.close();
              }
      void kabinet::price_menu()
                      {

                          cout << endl << endl << endl;
                          cout << "                                  _______________________________________________  " << endl;
                          cout << "                                 /                                              /  " << endl;
                          cout << "                                /                                              /  " << endl;
                          cout << "                               /  Медицинско за работа - 15 лева.             /  " << endl;
                          cout << "                              /  Медицинско за шофьорска книжка              /  " << endl;
                          cout << "                               /                        - 20 лева.            /  " << endl;
                          cout << "                            /  Оформяне на документи за застраховка        /  " << endl;
                          cout << "                           /                       - 50 лева.             /  " << endl;
                          cout << "                          /   Потребителски такси:                       /  " << endl;
                          cout << "                         /           за пенсионери - 1лев.              /  " << endl;
                          cout << "                        /            за осигурени лица - 2,90лева.     /  " << endl;
                          cout << "                       /                                              /  " << endl;
                          cout << "                      /   Преглед за лица, които не са осигурени     /  " << endl;
                          cout << "                     /                       - 20 лева.             /  " << endl;
                          cout << "                    /  1.Назад към главното меню                   /  " << endl;
                          cout << "                   /______________________________________________/  " << endl;
                          cout << "Натиснете, който и да е клавиш, за да продължите!!!";
                          _getch();
                          fout.close();
              }
              void kabinet::showHour();
              {
                  system("cls");
                  system("color B1");
                  ifstream fin("Записани данни: ", ios::in);
                  int c, flag;
                  cout << "Въведете запазен час: ";
                  cin >> c;
                  while (!fin.eof())
                  {
                      fin.read((char*)this, sizeof(kabinet));
                      if (hour == c)
                      {
                          system("cls");
                          cout << " Данни на пациента. ";
                          cout << "--------------------" << endl;
                          cout << "Имена: " << name;
                          cout << "Адрес: " << address;
                          cout << "Телефонен номер: " << phone;
                          cout << "Записан час за: " << date << "Час: " << hour;
                          flag = 1;
                          break;
                      }
                  }
                  if (nomb== 0)
                      cout << "Търсеният от вас номер не фигурира!!!";
                  cout << "Натиснете, който и да е клавиш, за да продължите!!!";
                  _getch();
                  fin.close();
              }

              void kabinet::edit()
              {
                  system("cls");
                  system("color A3");
                  int c, flag;

                  cout << "\n Меню за промяна";
                  cout << "\n ***************";
                  cout << "\n 1.Промяна на час ";
                  cout << "\n 2.Изтриване на запазен час";
                  cout << "Моля, изберете: ";
                  cin >> choise;
                  system("cls");
                  cout << "\n Въведете запазен час: ";
                  cin >> c;
                  switch (choice)
                  {
                  case 1: modifyHour(c);
                      break;
                  case 2:
                       delete_hour(c);//изтриване на запазения час
                      break;
                  default: cout << "\n Грешен избор!!";
                  }
                  cout << "\n  Натиснете, който и да е клавиш, за да продължите!!!";
                  _getch();
              }
              int kabinet::check(int c)
              {
                  system("color F2");
                  int flag = 0;
                  ifstream fin("Записи: ", ios::in);
                  while (!fin.eof())
                  {
                      fin.read((char*)this, sizeof(hotel));
                      if (hour== c)
                      {
                          flag = 1;
                          break;
                      }
                  }
                  fin.choice();
                  return (flag);
      }
              void kabinet::modifyHour(int c)
              {
                  system("color C3");
                  long pos, flag = 0;
                  fstream file("Record.dat", ios::in | ios::out | ios::binary);
                  while (!file.eof())
                  {
                      pos = file.tellg();
                      file.read((char*)this, sizeof(kabinet));
                      if (hour == c)
                      {
                          cout << "\n Въведете данните наново";
                          cout << "\n ***********************";
                          cout << "\n Име: ";
                          gets(name);
                          cout << " Адрес: ";
                          gets(address);
                          cout << " Телефонен номер: ";
                          gets(phone);
                          file.seekg(pos);
                          file.write((char*)this, sizeof(kabinet));
                          cout << "\n Данните Ви са променени!!!";
                          flag = 1;
                          break;
                      }
                  }
                  if (flag == 0)
                      cout << "\n Часът не е намерен!";
                  file.close();

              }
              void kabinet::delete_hour(int c)
                  int flag = 0;
              char ch;
              ifstream fin("Record.dat", ios::in);
              ofstream fout("temp.dat", ios::out);
              while (!fin.eof())
              {
                  fin.read((char*)this, sizeof(kabinet));
                  if (hour == c)
                  {
                      cout << "\n Име: " << name;
                      cout << "\n Адрес: " << address;
                      cout << "\n Телефонен номер: " << phone;
                      cout << "\n\n Искате ли да изтриете данните? (y/n): ";
                      cin >> ch;
                      if (ch == 'n')
                          fout.write((char*)this, sizeof(kabinet));
                      flag = 1;
                  }
                  else
                      fout.write((char*)this, sizeof(kabinet));
              }
              fin.close();
              fout.close();
              if (flag == 0)
                  cout << "\n Часът не е намерен.";
              else
              {
                  remove("Record.dat");
                  rename("temp.dat", "Record.dat");
              }
      }
      int main()
      {

          kabinet h;
          system("color A4"
              system("cls");
          cout << "\n\t\t\t*********************************";
          cout << "\n\t\t\t*    Проект за запис на час     *";
          cout << "\n\t\t\t*********************************";
          Sleep(200);
          char text[] = { "\n\n\n\n\t\t };
          for (int p = 0; p < strlen(text); p++)   
              cout << text[p];
              Sleep(40);
          }
          cout << "\n\n\tНатиснете който и да е клавиш!!";
          _getch();
          h.main_menu();
      }
    • от Emkey
      Здравейте, хорица. 
      Надявам се да не бъда нападната или осмивана, затова че не съм запозната в бранша, а пускам тема за елементарни въпроси. 
      Рисувам върху големи листа хартия, предимно с въглени. Но открих програмки, с които после мога да доукрасявам рисунките си и дотолкова се вдъхнових, че бих искала някои от нещата, които нарисувам да ги занеса за принт рисунка с канава, и да си ги окача на стените в дома ми. 
      От тук идват и въпросите ми. 
      След като си завърша рисунката върху хартия, и й направя снимка, (задължително с фотоапарат)  с коя програма най-добре ще бъде обработена, така че да не й разваля качеството. И размерите какви трябва да бъдат? Като цяло ме вълнува това как трябва да процедирам, за да не съсипя качеството на снимката. И да е годна рисунката ми за такава картина. Досега съм правила снимки на рисунките ми само с тел. Със сигурност не стават за печат. И са с малко пиксели. Изобщо цялата тая работа с пиксели, формати, качество ми е непонятна. Затова искам практични съвети от специалисти  
      Много благодаря предварително
  • Дарение

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.