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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

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

Featured Replies

Къде ми е грешата? Задачата е: Ангел и Васко имали среща в Ah и Bmin. Ангел тръгнал за срещата в Ch и Dmin, а Васко- в Kh и Lmin. Да се пресметне кой е пътувал повече и с колко време. Вход Изход 10 0 А 0 50 7 10 8 0 Ето и моето решение

#include<iostream>
using namespace std;
int main ()
{
    int a,b,c,d,k,l,p,q,x1,x2,x3;
    cin>>a>>b>>c>>d>>k>>l;
    x3=a*60+b;
    x1=c*60+d;
    x2=k*60+l;
    if (x1<x2){
       p=(x2-x1)/60;
       q=p%10;
       cout<<"A"<<" "<<p<<" "<<q<<endl;
       }
    else {
       p=(x1-x2)/60;
       q=p%10;
       cout<<"B"<<" "<<p<<" "<<q<<endl;
       }  
    if (x1==x2) {
       cout<<"0"<<" "<<"0"<<endl;
       }
system ("pause");
return 0;
}    

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

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

Моля за помощ за две задчки на С++ 1. при въведено х реално число пресмята F=(5х на квадрат+9)/7 2. При въвведени N цяло число пресмята сумата S=1+3+5+...+(2*N+1)

Да не пускам нова тема :

Моля за помощ за две задчки на С++

1. при въведено х реално число пресмята F=(5х на квадрат+9)/7

2. При въвведени N цяло число пресмята сумата S=1+3+5+...+(2*N+1)

Ще се радвам ако някой ми ги драсне Публикувано изображение

Ето ти решението на първата, а втората нещо не чаткам условието Публикувано изображение

#include <iostream>
using namespace std;

double sqr(double x){
	return x*x;
}

int main(){
	double x, F;
	cout<<"Vuvedete X: "; cin>>x;
	F = (5 * sqr(x) + 9) / 7;
	cout<<F;
}

Ето ти решението на първата, а втората нещо не чаткам условието Публикувано изображение

#include <iostream>
using namespace std;

double sqr(double x){
	return x*x;
}

int main(){
	double x, F;
	cout<<"Vuvedete X: "; cin>>x;
	F = (5 * sqr(x) + 9) / 7;
	cout<<F;
}
Мдам май е обърканко, но няма значение и едната ми стига, много ти благодаря :rolleyes:
  • 2 седмици по-късно...

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

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

/*

Напишете програма, която да чете цяло число (0<x<1000) и да отпечатва сумата от цифрите му

*/

#include <iostream>

#include <sstream>

using namespace std;

int main(){

unsigned long number=0;

while(true){

cout<<"Vyvedi chislo:";

cin>>number;

//if (number<0 || number>1000) {cerr<<"Chisloto ne moje da byde po-malko ot 0 i po-goliamo ot 1000"<<endl;continue;}

break;

}

string num_str;

stringstream convert;

convert<<number;

num_str=convert.str();

unsigned long sum=0;

for (string::iterator b=num_str.begin() ; b!=num_str.end() ; b++ ) {

sum+=*b-'0'; }

cout<<"Sumata ot cifrite e "<<sum<<endl;

}

/*

Дадено е цяло число N (>1). Да се изведе най-малкото цяло число К за което сумата 1+2+...+К

е по-голяма или равна на N и самата сума.

*/

#include <iostream>

using namespace std;

int main() {

int N=0;

int sum=0;

while(true){

cout<<"Vyvedi chislo >1:";

cin>>N;

if (N<1) continue;

else break;

}

int K=1;

while (!(K>=N && K>=sum)){

sum+=K;

K++;

}

cout<<"Nai malkoto K,za koeto e izpylneno uslovieto 1+2+...+K >= N && >=sumata e "<<K<<endl;

}

/*

Даден е масив с размер N.

Да се замени всеки елемент в масива със средноаритметичното на дадения елемент и неговите съседи.

*/

#include <iostream>

using namespace std;

int main(){

int N=0;

cout<<"Vyvedi razmer na masiv (N):";

cin>>N;

float masiv[N];

int count=0;

int i=0;

for (i=0;i<N;i++) {

masiv=count;

count++;

}

for (i=1;i<N;i++){

if (i!=N)

masiv=(masiv[i-1]+masiv+masiv[i+1])/3;

cout<<masiv<<endl;

}

}

/*

Да се дефинира функцията Len (xA, yA, xB, yB) от реален тип,

намиращи дължината на отсечката AB от равнината по координатите на нейните краища :

|AB| = ((xA-xB)2+(yA-yB)2)1/2

(xA, yA, xB, yB - реални параметри ).

С помощта на тази функция да се намери дължината на отсечките AB, AC, AD,

ако са дадени координатите на точките A, B, C, D.

*/

#include <iostream>

using namespace std;

float Len(float&,float&,float&,float&);

int main(){

float xA,yA,xB,yB;

float AB=0;

cout<<"xA=";cin>>xA;

cout<<"yA=";cin>>yA;

cout<<"xB=";cin>>xB;

cout<<"yB=";cin>>yB;

AB=Len(xA,yA,xB,yB);

cout<<"|AB|="<<AB<<endl;

cin.get();

}

float Len(float &xA,float &yA,float &xB,float &yB) {

float AB=((xA-xB)*(xA-xB)+(yA-yB)*(yA-yB))/2; // Тук има малко недоразумение,формулата в условието е неясна.Реших да го напиша така.

if (AB<0) return -AB;

else return AB;

}

Моля за помощ за две задчки на С++

1. при въведено х реално число пресмята F=(5х на квадрат+9)/7

2. При въвведени N цяло число пресмята сумата S=1+3+5+...+(2*N+1)

Добре бе...обясни ми не ти ли е по-лесно да си научиш тъпото C++ и да си го направиш сам,вместо да просиш?

#include <iostream>

#include <string>

#include <sstream>

using namespace std;

int main() {

string number;

size_t found;

cout<<"Въведи число:";cin>>number;

stringstream toNum;

toNum>>number;

found=number.find(".");

if (found!=string::npos) {

int integer;

toNum<<integer;

int check=2*integer+1; int S=0;

for (int i=1;i<check;i++) {

S+=i;

}

S+=check;

cout<<"S="<<S<<endl;

}

else {

float flt;

toNum<<flt;

float F=(5*(flt*flt)+9)/7;

cout<<"F="<<F<<endl;

}

}

ПС:Нито съм я тествал,нито съм я компилирал,написах я просто набързо,може да има грешки.

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

Можели да ми помогнете за за една програма на C условието е следното:Да се състави програма,определяща честотата на появяване на всички синволи в произволен текстов Файл. Много ще съм ви благодарен ако някои сподели определена идея тук.

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

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

HW_2.doc

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

1. Въвежда се цяло число.

2. Цифрите на числото се разбиват, като отделните такива се запазват в масив.

пр. 1256

1256%10 = 6;

1256=1256/10; /* 1256/=10; */

125%10 = 5

125=125/10;

12%10 = 2;

и т.н.

3. Сравняваш всеки отделен елемент на масива, като при сравнението обхождаш целия масив, защото ако проверяваш само за следващ/предишен елемент условието няма да е изпълнено, примерно:

5252 = 5|2|5|2 -> ако проверяваш if(digits==digits[i+1]), програмата вижда, че следващото число е различно и продължава. Схващаш?

За това трябва да се обходи целия масив, от първия елемент до последния и, ако се срещне цифрата, която е наред, рементираш брояча с еденица.

Като цяло задачата се решава основно с използването на цикли и условния оператор за сравнение!

Предпочетох да ти напиша решението по този начин, за да можеш да разбереш нещо. Ако има нещо неясно - питай! Опитай се да я решиш, ако не можеш, пиши и ще ти я напиша довечера.

Edit: jul_jul, поне да си беше направила труда да преведеш условието на задачата. ;-)

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

Смисълът на задачата се изрзява в това, че имаш един array от числа, които са спирките на метрото и трябва да се направят в double linked list, така че да се знае ков е следващата и коя предишната спирка Смисълът на задачата се изрзява в това, че имаш един array от числа, които са спирките на метрото и трябва да се направят в double linked list, така че да се знае ков е следващата и коя предишната спирка Ето го част от сорс кода, проблемът е във void check функацията

subway1.cpp.txt

1. Въвежда се цяло число.

2. Цифрите на числото се разбиват, като отделните такива се запазват в масив.

пр. 1256

1256%10 = 6;

1256=1256/10; /* 1256/=10; */

125%10 = 5

125=125/10;

12%10 = 2;

и т.н.

3. Сравняваш всеки отделен елемент на масива, като при сравнението обхождаш целия масив, защото ако проверяваш само за следващ/предишен елемент условието няма да е изпълнено, примерно:

5252 = 5|2|5|2 -> ако проверяваш if(digits==digits[i+1]), програмата вижда, че следващото число е различно и продължава. Схващаш?

За това трябва да се обходи целия масив, от първия елемент до последния и, ако се срещне цифрата, която е наред, рементираш брояча с еденица.

Като цяло задачата се решава основно с използването на цикли и условния оператор за сравнение!

Предпочетох да ти напиша решението по този начин, за да можеш да разбереш нещо. Ако има нещо неясно - питай! Опитай се да я решиш, ако не можеш, пиши и ще ти я напиша довечера.

Edit: jul_jul, поне да си беше направила труда да преведеш условието на задачата. ;-)

Благодаря, не ми се чакаше и го направих с 35 If-a Публикувано изображение

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

Смисълът на задачата се изрзява в това, че имаш един array от числа, които са спирките на метрото и трябва да се направят в double linked list, така че да се знае ков е следващата и коя предишната спирка

Смисълът на задачата се изрзява в това, че имаш един array от числа, които са спирките на метрото и трябва да се направят в double linked list, така че да се знае ков е следващата и коя предишната спирка

Ето го част от сорс кода, проблемът е във void check функацията

Привет! Има няколко възможности, въпреки че наистина не би трябвало да дава грешка. Най-добре е във структурата express да добавиш функция която да сочи следващият елемент към NULL . Другият вариант , за който не съм сигурен е while(testNormal->num), което проверява докато не срещне нула и предполагам , че ще работи. Успех...

Благодаря, не ми се чакаше и го направих с 35 If-a Публикувано изображение

Има една много готинка функция itoa :rolleyes: Успех... :rolleyes:

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

Привет! Има няколко възможности, въпреки че наистина не би трябвало да дава грешка. Най-добре е във структурата express да добавиш функция която да сочи следващият елемент към NULL . Другият вариант , за който не съм сигурен е while(testNormal->num), което проверява докато не срещне нула и предполагам , че ще работи. Успех...

Има една много готинка функция itoa :rolleyes: Успех... :rolleyes:

Здравейте и от мен.искам да ви кажа че аз съм писал сорс-а.Та проблема ми е как точно да интегрирам expressID[] array-a като double linked list така че в самата структура да има указател кам следваща и предишна спирка.Например на спирката с индекс expressID[0] предишната спирка трябва да е expressID[expressstations-1] т.е. 5 в нашия случай и обратното - expressID[5] next station is expressID[0] но не мога да го инициализирам така.

Ще съм мн благодарен ако някой е по добре запознат с double linked lists и има някоя идея.

P.S. за тези които се правят че могат до някаква степен да програмират и искат преведено условие по-добре е да не пишат.Все пак английския оправдава програмирането,така че no comments.

Благодаря!!

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

Здравейте и от мен.искам да ви кажа че аз съм писал сорс-а.Та проблема ми е как точно да интегрирам expressID[] array-a като double linked list така че в самата структура да има указател кам следваща и предишна спирка.Например на спирката с индекс expressID[0] предишната спирка трябва да е expressID[expressstations-1] т.е. 5 в нашия случай и обратното - expressID[5] next station is expressID[0] но не мога да го инициализирам така.

Ще съм мн благодарен ако някой е по добре запознат с double linked lists и има някоя идея.

P.S. за тези които се правят че могат до някаква степен да програмират и искат преведено условие по-добре е да не пишат.Все пак английския оправдава програмирането,така че no comments.

Благодаря!!

Под Линукс не мога да го компилирам. Относно свързания списък - Алгоритми в C от Роберт Седжуик. Там е дота обширно обеснено...

1. Въвежда се цяло число.

2. Цифрите на числото се разбиват, като отделните такива се запазват в масив.

пр. 1256

1256%10 = 6;

1256=1256/10; /* 1256/=10; */

125%10 = 5

125=125/10;

12%10 = 2;

и т.н.

3. Сравняваш всеки отделен елемент на масива, като при сравнението обхождаш целия масив, защото ако проверяваш само за следващ/предишен елемент условието няма да е изпълнено, примерно:

Уоу,уоу... :angry22: Става и така,но защо просто не вкараш числото в sstream и не го изкараш като string,после да преброиш знаците? :speak:

Пък после ако си решиш от знак в цифра става много лесно,вади се 48 (0) от ASCII кода.

'4'-48=4

'4'-'0'=4

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

Уоу,уоу... :bedtime2: Става и така,но защо просто не вкараш числото в sstream и не го изкараш като string,после да преброиш знаците? :)

Пък после ако си решиш от знак в цифра става много лесно,вади се 48 (0) от ASCII кода.

'4'-48=4

'4'-'0'=4

Условието не е да се преброят цифрите на дадено число! Това, ако става въпрос може да се реши точно с три реда код.

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

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

Малко помощ ако може че нищо не разбирам 1 да се напише програма създаваща едносвързан списък с цели положителни елементи. да се добави функция , която търси елемент в списъка , чиято стойност е наи близка до средната аритметична в структурата , и я слага в началото на списъка. 2 да се напише функция за обхождане постордер на статично представано двоично дърво. 3 да се напише функция определяща ранга на даден неориентиран граф (ранъгът е максималната степен на връх в грава

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

Курсовата задача е следната: Поразгледах в интернет и открих програма, която е писана за същото задание като моето. Ето я и нея:

При пускането и обаче (Borland C++ 3.1, курсовата задача трябва да е правена на него) се оказа, че има 3 грешки и като цяло не е точно това, което правим в университета.

Ето една задачка правена в час:

Моля хората, които разбират от програмиране да помогнат за евентуалното написаване на програмата или ако може горната с 3-те грешки да се оправи, но да има вид като тази в час (накрая да е с "return 0;", а не с "getch();", да е с по-простички функции (не с min=99999999999 и разни въвеждания на масиви).

БЛАГОДАРЯ НА ВСИЧКИ ОТГОВОРИЛИ!!!

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

Здравейте, колеги. Затруднявам се с една задачка на езика С. Бихте ли ми помогнали ? Ето я и задачата: За група студенти са зададени факултетен номер, оценките по три дисциплини, среден успех. Да се създаде програма, която: - въвежда информацията за групата студенти, без среден успех; - изчислява средния успех на всеки един от студентите; - намира процентното съотношение отличници/слаби студенти; - намира факултетния омер на студента с най-висок успех. Благодаря ви сърдечно предварително.

немога да си обясня по коя формула да смятам... как да го наредя....

void main()

{

	float    st1[4]={501,4,6,2},
		  st2[4]={502,3,5,5},
		  st3[4]={503,2,2,4},
			srusp[3];
	
	int brdv[3],i,brotl=0,brdv=0;
	for (i=1,i<5,i++) 
		{
			sum1=sum1+st1[i];
			sum2=sum2+st2[i];
			sum3=sum3+st3[i];
		}
	srusp[0]=sum1/3;
	srusp[1]=sum2/3;
	srusp[2]=sum3/3;

	for (i=0;i<3;i++) brdv[i]=0
	for (i=1;i<5;i++)
		{
			if (st1[i]==2) brdv[0]++;
			if (st2[i]==2) brdv[1]++;
			if (st3[i]==2) brdv[2]++;
		}
	for (i=0;i<3;i++)
		if (srusp[i]>5.50) brotl++;
	for (i=0;i<3,i++)
		if (brdv[1]==2) brdv[1]++;

Ами по-нататък ? До тук стигнах... помагайте [-o< [-o<

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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