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

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

Kaldata.com - Форуми

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

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

Добре дошли!

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

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

 

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

Featured Replies

Точно на тоя урок ми изби тъпнята и не слушах много даже и не съм писал .. :Х

 

 

double a; cout << "a="; cin >> a; short d, e; d=a/10; e=a%10; cout << "d" << " " << "e" << "n"; return 0;

 

измислих това но ми излиза 

 

 

C:UsersblablablaDocumentsprogramiranezad1zad1.cpp||In function 'int main()':| C:UsersblablablaDocumentsprogramiranezad1zad1.cpp|10|error: invalid operands of types 'double' and 'int' to binary 'operator%'| ||=== Build finished: 1 errors, 0 warnings ===|

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

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

C:UsersblablablaDocumentsprogramiranezad1zad1.cpp||In function 'int main()':|

C:UsersblablablaDocumentsprogramiranezad1zad1.cpp|10|error: invalid operands of types 'double' and 'int' to binary 'operator%'|

||=== Build finished: 1 errors, 0 warnings ===|

Привет,

 

За грешката, която Ви изкарва, прочетете това Modulus Operator.

Обърнете внимание на следното:

 the modulus operator ('%'), that computes the remainder that results from performing integer division

т.е. оператора за остатък от делене се прилага към целочислени типове. А вие го прилагате към променлива от тип double - в случая "a".

 

Решението ? Просто променете типа на "a" от "double" на "int" или дори на "unsigned int". В така написания вариант, програмата не е коректна. А и естеството на задачата предполага, че трябва да работите с числа от множеството Публикувано изображение - целочислени, неотрицателни числа (което всъщност, ако не се лъжа, в С/С++ е тип "unsigned int").

 

Поздрави !

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

числа от множеството - целочислени, неотрицателни числа (което всъщност, ако не се лъжа, в С/С++ е тип "unsigned int").

unsigned int е много мъничко подмножество от Публикувано изображение:P

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

unsigned int е много мъничко подмножество от Публикувано изображение:P

Добро уточнение :) . Все пак Публикувано изображение е безкрайно, за разлика от който и да е unsigned тип.

Само ограничения се налагат, значи :P ... 

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

За какво му е да е голямо като числото трябва да е двуцифрено - от 10 до 99?

Проследи дискусията и закачката, говорим за безкрайно множество, сравнено с едва (обикновено) 216 числа :)

Проследи дискусията и закачката, говорим за безкрайно множество, сравнено с едва (обикновено) 216 числа :)

Като ще се закачаме, в светлината на всички цели неотрицателни числа, разликата между unsigned int и unsigned long long е абсолютно пренебрежима. А, и unsigned int по принцип е машинно зависимо, но дефакто е 32bit от ужасно отдавна, на всякакво PC (и на всякакъв смартфон ако щеш). 16 бита е било когато бях в гимназията...

П.П.

А и естеството на задачата предполага...

Условието, не естеството. Можем да си намираме определена цифра и от реално число, и някои рационални числа могат да бъдат представени с 2 цифри :P

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

#include <iostream>
using namespace std;
int main()
{
    int a;
    cout << "a=";
    cin >> a;
    int d, e;
    d=a/10;
    e=a%10;
    cout << d << " " << e << "n";
    return 0;
 
}
 
Работи. Мерси за помоща на всички

За какво му е да е голямо като числото трябва да е двуцифрено - от 10 до 99?

Напълно съгласен - и short типа върши работа, ако int-а ни е голям - избор голям в случая :).

 

 

Условието, не естеството. Можем да си намираме определена цифра и от реално число, и някои рационални числа могат да бъдат представени с 2 цифри :P

 

 Пренебрежимо малко е бройката на тези числа  :ph34r: .

 

 

Работи. Мерси за помоща на всички

 

За нищо :)

То и char става :)

char е по-добре от short, нo... напълно безсмислено, освен ако няма да правите много голям масив. По-правилно е да ползвате int/unsigned int, ако няма шанс да прелеем и/или размерът на данните не е критичен. Иначе обикновено има специални типове с гарантирани размери.

Пренебрежимо малко е бройката на тези числа  :ph34r: .

Точно колкото двуцифрените цели са :P

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

Много спешно ми трябва една задачка на езика C и блок схема към нея. Ще съм супер благодарен. (Само да кажа, че трябва да е написана максимално просто с простите оператори for, if и т.н.) хаха Трябва да изглежда все едно е писана от първокурсник, който скоро се е запознал със C. :D 

 

Да се състави програма за обработка на масива A[N,N], където данните са цели числа в интервала [-1000; 1000]. Програмата да извършва следните действия:1. Отпечатване на условието на задачата.
2. Отпечатване на имената на автора на програмата.
3. Въвеждане на входните данни.
4. Отпечатване на входните данни.
5. а) Да се образува едномерен масив D[N], който се образува от всички елементи по-големи от P (P се въвежда от клавиатурата), които лежат под главния диагонал на дадения масив.
5. б) Полученият масив да се сортира по големина.
6. Отпечатване на получените  резултати след обработка а) и след обработка б).
 
Много, много, много моля за помощ. Наистина е спешно и важно. 

...

Здравейте, 

 

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

Ако все още нямате такъв, то представете как според Вас трябва да се подходи с решаването й и с какъв замисъл бихте тръгнал. 

 

Поздрави !

 

(Само да кажа, че трябва да е написана максимално просто с простите оператори for, if и т.н.) хаха Трябва да изглежда все едно е писана от първокурсник, който скоро се е запознал със C. :D

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

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

2. Отпечатване на имената на автора на програмата.

Станаха тарикати тея даскали - само какви изисквания вече включват в условието :)

Станаха тарикати тея даскали - само какви изисквания вече включват в условието :)

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

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

Здравейте, 

 

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

Ако все още нямате такъв, то представете как според Вас трябва да се подходи с решаването й и с какъв замисъл бихте тръгнал. 

 

Поздрави !

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

 

Здравейте, благодаря за бързото реагиране.

Ами разписан код нямам. Не са ни дали ограничения откъм оператори и блокове, но сме в самото начало на езика C и тя много добре е наясно, че ни преподава и решаваме такива задачки с оператори for и if, и супер рядко char. Ако има нещо различно от тях, тя веднага ще разбере, че не е правена от мен и ще анулира всичко. Представих ѝ една примерна задача, която един познат ми написа (разбира се на доста по-сложно ниво написана) и тя директно ми заяви, че е писана от програмист, а не от първокурсник, който се е запознал с този език преди няколко седмици. 

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

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

Окей, ще Ви дам няколко места, където можете да огледате и попрочетете за тях - както концептуално какво представляват, така и примери, в които се използват. Ако и след това имате въпроси, можете да ги зададете. И съответно ще се пристъпи и към решаването на проблема Ви. В случая, Вие сте водещия посоката на дискусията, поради което ще гледаме да даваме повече насоки и помощ, отколкото чист код.

 

Ето няколко ресурса за масиви:

Arrays in C++, C++ Arrays tutorial, C++ Arrays, Arrays Tutorial

 

Поздрави !

Окей, ще Ви дам няколко места, където можете да огледате и попрочетете за тях - както концептуално какво представляват, така и примери, в които се използват. Ако и след това имате въпроси, можете да ги зададете. И съответно ще се пристъпи и към решаването на проблема Ви. В случая, Вие сте водещия посоката на дискусията, поради което ще гледаме да даваме повече насоки и помощ, отколкото чист код.

 

Ето няколко ресурса за масиви:

Arrays in C++, C++ Arrays tutorial, C++ Arrays, Arrays Tutorial

 

Поздрави !

Искрено благодаря. Разгледах ги, но само последното ми дава някаква минимална представа за масивите, защото ми трябва в C, a не в C++. Затрудненията ми идват от въвеждането на входните данни. И всичко отам нататък ми е супер не ясно. Никаква идея нямам как да направя този масив, а после и другия с този главен диагонал направо ме убива, а за сортиране да не говорим. Дали ще е много нахално от моя страна да помоля някой да направи задачата максимално опростена с изброение по-горе оператори if и for с леки обяснения отстрани защо и как се получава, защото абсолютно нищо не вдявам?  Нищичко не разбирам, а и тя не ни е обяснила нищо като хората. Не мога да се справя сам. Ще съм много благодарен за цялостна помощ. 

Искрено благодаря. Разгледах ги, но само последното ми дава някаква минимална представа за масивите, защото ми трябва в C, a не в C++. Затрудненията ми идват от въвеждането на входните данни. И всичко отам нататък ми е супер не ясно. Никаква идея нямам как да направя този масив, а после и другия с този главен диагонал направо ме убива, а за сортиране да не говорим. Дали ще е много нахално от моя страна да помоля някой да направи задачата максимално опростена с изброение по-горе оператори if и for с леки обяснения отстрани защо и как се получава, защото абсолютно нищо не вдявам?  Нищичко не разбирам, а и тя не ни е обяснила нищо като хората. Не мога да се справя сам. Ще съм много благодарен за цялостна помощ. 

Да, ще е нахално. Всеки от нас помага тук по добра воля. И искаме да помагаме на хора, които полагат усилия да се научат!

Да, ще е нахално. Всеки от нас помага тук по добра воля. И искаме да помагаме на хора, които полагат усилия да се научат!

Да, разбирам. Извинете ме. 

Ето до къде я докарах.

 

#include <stdio.h>
#include <stdlib.h>
#define N 10
int main()
{
int A[N][N] , C[N] ;
int m,i,j,p;
printf(" Avtor: Georgi Tswetkown");
printf(" EMF, 14 gr. TEQE, Fakulteten nomer: 041213003n");
printf(" Uslovie: Da se systavi programa za obrabotka n");
printf(" na masiva A[N,N], kudeto dannite sa celi chisla n");
printf(" v intervala [-1000;1000]. Programata da izvyrshi n");
printf(" slednite deistviya: n");
printf(" - otpechatwa uslowieto na zadachata; n");
printf(" - otpechatwa imenata na awtora na programata; n");
printf(" - wywejdane na whodnite danni n");
printf(" - otpechatwane na whodnite danni n");
printf(" - a) da se obrazuva ednomeren masiv D[N], koyto se obrazuwa n");
printf("      ot wsichki elementi po-golemi ot P (P se wywjda ot klawiaturata), n");
printf("      koito lejat pod glawniq diagonal na dadeniq masiw;
printf(" - b) polucheniyat masiw da se sortira po golemina; n");
printf(" - otpechatwane na rezultatite sled obrabotka a) i b) n");
printf("Wywejdane na whodni danni: n");
printf("Wywedete broy redowe : ");
scanf("%d",&m);
printf("Wywejdane na broy stulbowe : ");
scanf("%d",&m);
 
for(i=0;i<m;i++)
for(j=0;j<m;j++)
do
{
printf("Wywedete A[%d][%d]= ",i,j);
scanf("%d", &A[j]);
}
while( (A[j]<-1000) && (A[j]>1000) );
printf("Izwejdane na vhodnite danni: n");
for(i=0;i<m;i++)
{
for(j=0;j<m;j++)
printf(" %d ", A[j]);
printf(" n ");
}
 
 
Затруднението ми идва при образуването на масива D[N], защото нямам идея как да се направи така, че да ми изведе всички елементи под главния диагонал, които са по-малки от Р.  Тук мога ли да помоля за помощ? Иначе сортирането разбрах как става. 

А къде е дефиниран този масив D, който споменавате? За главния диагонал се опитайте да си представите къде се намира главния диагонал и какви са координатите и от там да получите какви биха били координатите на тези елементи

Цял ден се мъчих. Главата ме боли, но УСПЯЯЯХ. Къде ли не четох, какво ли не правих... Направих си абсолютно всичко сам, даже използвах и метода на мехурчетата. Изключително съм Ви благодарен, защото без Вашата помощ, нямаше да успея. 

 

С най-добри пожелания и много благодарности!

Някой ще удари ли едно рамо с чистото c ,че не мога да разбера какво точно трябва да направя.

Масив A[6,6] съставен от реални числа със стойности в интервала [0;99.99].Да се извърши следното действие елементите на масива A равни на своите съседни елементи да се изнесат в масива C[L,3] заедно с техните индекси.До тук съм :D

  int i = 0 ,k = 0, array_i = 0;
  float A[6][6];
  float C[6*6];
  for (i = 0; i<6; i++){
  for (k=0; k<6; k++){
  do{
  printf("Vavedete %d element ot %d red: ", k+1, i+1);
  scanf("%f", &A[k]);
  } while (A[k] < 0 || A[k] > 99.99);
  }
  }

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

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

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

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

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

Дарение

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

Бюлетин

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

Профил

Навигация

Търсене

Търсене

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

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