Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Помощ за задачи на C/C++ (merged)

Featured Replies

ДОколкото разбрах въпроса е да се намери сумата на двете най-големи. Което просто се разбива на две задачи: намиране на двете най-големи и събирането им

Аха  може да съм се подвел защото питащия казва: Дадени са три числа и т.н

  • Отговори 941
  • Прегледи 234,5k
  • Създадено
  • Последен отговор

Аха  може да съм се подвел защото питащия казва: Дадени са три числа и т.н

Да, и в конкретния случай може да се подходи по диаметрално противоположния подход: намира се най-малкото и се събират другите две :)

Да, и в конкретния случай може да се подходи по диаметрално противоположния подход: намира се най-малкото и се събират другите две :)

Чрез std::min_element или масив ?Смисъл ако са 100 числа.

Не че сам неблагодарен но никой не каза каде е грешката в кода че компилаторът не ми го рънва;]

Незнам нито каза каква е грешката нито нищо.Ще ме караш да уча C++ :)

 

 

#include <iostream>using namespace std;int main (){	    int a, b;	    int c;	    a = 10;	    b = 20;	    c = a + b;	    cout << c << endl ;	    return 0;} 

 

 

Не че сам неблагодарен но никой не каза каде е грешката в кода че компилаторът не ми го рънва;]

 

И аз тръгнах да се чудя какъв ти е проблемът, имайки предвид, че алгоритъмът ти е правилен(въпреки, че не и универсален). Но първо да ти цитирам един програмист:

 

Дееба... чувствам се все едно обяснявам на майка ми как да си отвори пощата

"не работи"

WTF?!?!? к'во значи че не работи?

Не ти се компилира, дава ти грешка, вади ти грешни резултати, компютърът ти се изключва като го напишеш или на целия квартал му спира тока?

Stilgar

 

Та, к'во значи „не рънва“? Щото на мен ми го „рънва“ без дертове.

 

Публикувано изображение

 

Единствената разлика м/у моя и твоя код е т'ва system("pause") е, ако грешката ти е „error: 'system' was not declared in this scope“(или нещо подобно), то не си включил библиотеката cstdlib. Пък и 'що ти е въобще system("pause")? Не мен ми се чини, че е безсмислено, ама някой по-навътре в Цъ++ да каже със сигурност.

#include <iostream>using namespace std;int main (){	    int a, b;	    int c;	    a = 10;	    b = 20;	    c = a + b;	    cout << c << endl ;	    return 0;} 

 

Ти пък не си разбрал условието пак. :D

П.П. Забележете оригиналното име на програмата ми. :)

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

 

И аз тръгнах да се чудя какъв ти е проблемът, имайки предвид, че алгоритъмът ти е правилен(въпреки, че не и универсален). Но първо да ти цитирам един програмист:

Та, к'во значи „не рънва“. Щото на мен ми го „рънва“ без дертове.

 

Публикувано изображение

 

Единствената разлика м/у моя и твоя код е т'ва system("pause") е, ако грешката ти е „error: 'system' was not declared in this scope“(или нещо подобно), то не си включил библиотеката cstdlib. Пък и 'що ти е въобще system("pause")? Не мен ми се чини, че е безсмислено, ама някой по-навътре в Цъ++ да каже със сигурност. 

Ти пък не си разбрал условието пак. :D

П.П. Забележете оригиналното име на програмата ми. :)

Е fuck я fuck :) Само спамим :) Аз как го разбрах ... луда работа :) Щото да се изведе сумата от двете най-големи и аз веднага реших че трябва да се съберат :)

Здавейте никога не ми се е налагало да пиша на с++ писал сам малко на джава и сам начинаещ затова ще ви помоля за малко помощ за една елементарна програмка която не ми се рънва нещо явно има грешка някъде ако може да кажете къде --->  Дадени са три числа. Да се изведе сумата на двете най-големи от тези три числа.

#include <iostream>

using namespace std;

int main()

{

int a,b,c;

 if(a<b&&a<c) cout<<b+c;

else if(b<c&&b<a) cout<<a+c;

else cout<<a+b;

system("pause");

}

програмата не ти работи защото не си инициализирал променливите с никакви стойности. задай им конкретни стойности и всичко ще е ок

Здравейте имам нужда от помощ за решаването на една задача на С++ ще съм много благодарна ако някой може да ми помогне благодаря предварително!

Да се напише програма която обработва данните на магазин за дрехи номер на артикул,вид,цена,брой.Конструктор по подразбиране и конструктор с параметри метод за отпечатване на информация на обект от този клас,въвежда информация за 200 обекта от по клас я извежда в обратен ред. :D

 

#include <iostream>
#include <string>
using namespace std;
const int MAX = 200;
class Clothes
{
private:
int articulId;
string type;
double price;
int numberOfArticul;
public:
Clothes()
{
articulId = 0;
type = "";
price = 0;
numberOfArticul = 0;
}
 
Clothes(string type, int articulId, int numberOfArticul,double price)
{
this->type = type;
this->articulId = articulId;
this->numberOfArticul = numberOfArticul;
this->price = price;
}
 
~Clothes()
//tqloto na destructora e prazno zashtoto nqma da se suzdavat promenlivi ot tozi klas s kliuchovata duma [new]
}
 
string GetType()
{
return type;
}
 
int GetArticulId()
{
return articulId;
}
 
int GetNumberOfArticul()
{
return numberOfArticul;
}
 
double GetPrice()
{
return price;
}
 
void SetType(string type)
{
this->type = type;
}
 
void SetArticulId(int articulId)
{
this->articulId = articulId;
}
 
void SetPrice(double price)
{
this->price = price;
}
 
void SetNumberOfArticul(int numberOfArticul)
{
this->numberOfArticul = numberOfArticul;
}
 
friend ostream& operator<<(ostream& out, Clothes &clot)
{
out<<"Type : "<<clot.GetType()<<endl;
out<<"Articul ID : "<<clot.GetArticulId()<<endl;
out<<"Number of articul : "<<clot.GetNumberOfArticul()<<endl;
out<<"Price : "<<clot.GetPrice()<<endl;
return out;
}
 
friend istream& operator>>(istream& in, Clothes &clot)
{
cout<<"Type : ";
string type;
in>>type;
cout<<"Articul ID :";
int id;
in>>id;
clot.SetType(type);
clot.SetArticulId(id);
cout<<"Number of articul : ";
in>>id;
clot.SetNumberOfArticul(id);
double price;
cout<<"Price : ";
in>>price;
clot.SetPrice(price);
return in;
}
};
 
class Store
{
private:
Clothes clothes[MAX];
public:
 
Store()
{
 
}
 
~Store()
{
 
}
 
void Input()
{
for(int i = 0; i < MAX; i++)
cin>>clothes;
}
void Print()
{
for(int i = MAX - 1;  i >= 0; i--)
cout<<clothes<<endl;
}
};
 
void main()
{
Store store;
store.Input();
store.Print();
system("pause");
}

#include <iostream>
#include <string>
using namespace std;
const int MAX = 200;
class Clothes
{
private:
int articulId;
string type;
double price;
int numberOfArticul;
public:
Clothes()
{
articulId = 0;
type = "";
price = 0;
numberOfArticul = 0;
}
 
Clothes(string type, int articulId, int numberOfArticul,double price)
{
this->type = type;
this->articulId = articulId;
this->numberOfArticul = numberOfArticul;
this->price = price;
}
 
~Clothes()
//tqloto na destructora e prazno zashtoto nqma da se suzdavat promenlivi ot tozi klas s kliuchovata duma [new]
}
 
string GetType()
{
return type;
}
 
int GetArticulId()
{
return articulId;
}
 
int GetNumberOfArticul()
{
return numberOfArticul;
}
 
double GetPrice()
{
return price;
}
 
void SetType(string type)
{
this->type = type;
}
 
void SetArticulId(int articulId)
{
this->articulId = articulId;
}
 
void SetPrice(double price)
{
this->price = price;
}
 
void SetNumberOfArticul(int numberOfArticul)
{
this->numberOfArticul = numberOfArticul;
}
 
friend ostream& operator<<(ostream& out, Clothes &clot)
{
out<<"Type : "<<clot.GetType()<<endl;
out<<"Articul ID : "<<clot.GetArticulId()<<endl;
out<<"Number of articul : "<<clot.GetNumberOfArticul()<<endl;
out<<"Price : "<<clot.GetPrice()<<endl;
return out;
}
 
friend istream& operator>>(istream& in, Clothes &clot)
{
cout<<"Type : ";
string type;
in>>type;
cout<<"Articul ID :";
int id;
in>>id;
clot.SetType(type);
clot.SetArticulId(id);
cout<<"Number of articul : ";
in>>id;
clot.SetNumberOfArticul(id);
double price;
cout<<"Price : ";
in>>price;
clot.SetPrice(price);
return in;
}
};
 
class Store
{
private:
Clothes clothes[MAX];
public:
 
Store()
{
 
}
 
~Store()
{
 
}
 
void Input()
{
for(int i = 0; i < MAX; i++)
cin>>clothes;
}
void Print()
{
for(int i = MAX - 1;  i >= 0; i--)
cout<<clothes<<endl;
}
};
 
void main()
{
Store store;
store.Input();
store.Print();
system("pause");
}

Благодаря ти изключително много!:)

Благодаря ти изключително много! :)

Надявам се да не е първо априлска шега :D Шегувам се!:P

...

Две забележки:

  • Коментарът в тялото на деструктора не е верен. Може без проблем да си ползваш new за да създаваш обекти от клас, който няма отделно дефиниран деструктор. Такъв деструктор е необходим, само когато конструкторът "заема" някакъв ресурс, който после трябва да се освободи изрично.
  • Тъй като си направил предефинираните оператори "приятели" на класа, директно отпада нуждата да изваждаш на показ данните с get и set методи, тъй като те могат да си ги достъпват без проблем. То това всъщност е и една от идеите на "приятелството".

Не мога да разбера как работи един рекурсивен алгоритъм :(

#include <stdio.h>const unsigned n = 5;void printRed(unsigned k, unsigned long result){    printf("%lu ", result);   if (k < n) printRed(k + 1, result * 10);   printf("%lu ", result);}int main(void) {printRed(1, 10);printf("n");return 0;}

 

Резултата е: 10, 100, 1000, 10000, 100000, 100000, 10000, 1000, 100, 10

 

Не мога да разбера каква е логиката да изкара числата и в намаляващ ред. След като k стане 5 не трябва ли да приключи извеждането?

Не мога да разбера каква е логиката да изкара числата и в намаляващ ред. След като k стане 5 не трябва ли да приключи извеждането?

  А принта след рекурсивното извикване къде го забрави? всяко рекурсивно извикване, освен последното ще печата по две стойности - преди и след новото извикване. А те ще са еднакви, защото параметърът result не се променя в контекста на функцията.

  • 2 седмици по-късно...

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

Днес ми дадоха алгоритъм, който сбива обратно числата (първия цикъл). Например, ако имам fjksdgls12fsag-32 би трябвало да ми изведе -20, но ако не използвах този алгоритъм, т. е. ако ги сумирах елемент по елемент щеше да ми изведе 2. Проблемът ми е какво да напиша като условие за край на цикъл за самото сумиране. Пробвах while(number), while(1), while(str!=0) и винаги зацикля. Многото библиотеки са понеже писах върху друг код на същата задача.

#include<stdio.h>#include<ctype.h>#include<stdlib.h>#include<math.h>#define SIZE 100int main(){char str[SIZE];int i=0,Sum=0,flag=0,number=0;printf("Put the string in: ");gets(str);while(1){if(str[i]!='0')    {        if((str[i]=='-') && isdigit(str[i+1])>0) flag=1;        while((str[i]>='0') && (str[i]<='9'))        {            number=(number*10)+(str[i]-'0');            i++;        }	        if (flag==1) number=-number;        while(number)	        {            Sum=Sum+number;        }			        }}printf("The sum is %d", Sum);return 0;}

 

 

Днес ми дадоха алгоритъм, който сбива обратно числата (първия цикъл). Например, ако имам fjksdgls12fsag-32 би трябвало да ми изведе -20, но ако не използвах този алгоритъм, т. е. ако ги сумирах елемент по елемент щеше да ми изведе 2. Проблемът ми е какво да напиша като условие за край на цикъл за самото сумиране. Пробвах while(number), while(1), while(str!=0) и винаги зацикля. Многото библиотеки са понеже писах върху друг код на същата задача.

 

Не ми се мисли каква е логиката на това, но според мен ще си цикли безкрайно

   	 while(number)	        {            Sum=Sum+number;        }

 

Не ми се мисли каква е логиката на това, но според мен ще си цикли безкрайно

   	 while(number)	        {            Sum=Sum+number;        }

Да цикли безкрайно така. Идеята е полученото число от горния цикъл да го добавя към сумата.

Редактирано от ACCESS DENIED (преглед на промените)

имате 3 while цикъла един в дръг, аз ви предложих да махнете най-вътрешния, а в средния (който става вътрешен след махането) се правят промени в number И просто последния ред от кода е да се сумира

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

имате 3 while цикъла един в дръг, аз ви предложих да махнете най-вътрешния, а в средния (който става вътрешен след махането) се правят промени в number И просто последния ред от кода е да се сумира

Пробвах да вкарам сумирането в първия вътрешен цикъл, но зацикли.

Трябва ми помощ за една курсова задача по системно програмиране. Пише се на C под linux. Условието е: 

Напишете програма, която открива всички уеб сървъри измежду списък с IP адреси, който е записан във файл и подаден като аргумент на програмата.

 

Дайте идеи за първата част от задачата. И от къде мога да прочета повече по темата?

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

Архивирана тема

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

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

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

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.