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

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


Да се определи най-голямото число от редица,което не е по-голямо от дадено число А и поредния номер на първия елемент с такава стойност,ако: 
а/редицата е с 76 елемента; 
б/редицата е с предварително зададен брой елементи; 
в/редицата е с последен елемент 0; 
г/редицата е с елементи,докато сумата им стане по голяма от 176 


Много ще съм благодарен на всякакви мнения и предложения.Благодаря предварително!!

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


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

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

  • Харесва ми 2

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


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

Много ще съм благодарен на всякакви мнения и предложения.Благодаря предварително!!

Каква е разликата между първите две подусловия?

Иначе:

Обща част:

[*]Правиш си временни променливи за брояч, индекс на първия намерен елемент.

[*]С цикъл while намираш първият елемент който отговаря на условието, т.е. не е по-голямо от А.

[*]инициализираш индекса. ако цикълът стигне до края на редицата - виж по-долу за всяка точка - задачата няма решение.

Специфична част:

[*]за 1 и 2 точка. Условието за край на редицата е брояча да е по-малък от броя елементи. След това с втори цикъл обикаляш всички следващи елементи, и ако намериш по-голям от досегашния но не и от А, актуализираш индекса...

[*]за 3 точка същото, но и модифицираш и двата цикъла да спират, ако стигнат до елемент равен на нула.

[*]за 4 точка същото, но си правиш временна променлива за сума в която акумулираш елементите и двата цикъла трябва да проверяват дали не е стигнала 176.

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

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

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


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

Значи аз си мисля да го направя с "switch case" за всяка под точка отделен "case" и мисля ,че така ще се опрости малко.За въпроса каква е разликата,просто в под точка А) трябва да са 76,а на Б) някакъв друг брой.Емокостов не очаквам да се напише цялата задача защото и аз искам да разбера как ще стане.Ако ми дадете някакво начало мисля,че ще се оправя нататък.Благодаря предварително :)

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


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

Значи аз си мисля да го направя с "switch case" за всяка под точка отделен "case" и мисля ,че така ще се опрости малко.

Начина на избор на точка, по никакъв начин не променя това, което съм написал :)

 

За въпроса каква е разликата,просто в под точка А) трябва да са 76,а на Б) някакъв друг брой.

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

 

Ако ми дадете някакво начало мисля,че ще се оправя нататък.Благодаря предварително :)

Мисля, че ти дадох доста повече от някакво начало.

 

Добавка:

// нека редицата да е в масив sequence// нека A е в променливата Аint len = 76;int index;int cidx;cidx = 0;while ((cidx < len) && (sequence[cidx] > A))    cidx++;if(cidx == len) {    printf("No solution");} else {    index = cidx;    for(cidx++; cidx < len; cidx++)	    if((sequence[cidx] <= A) && (sequence[cidx] > sequence[index]))		    index = cidx;    printf("Solution is sequence[%d] = %dn", index+1, sequence[index]);}
Редактирано от flare (преглед на промените)

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


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

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

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

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


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

Значи аз си мисля да го направя с "switch case" за всяка под точка отделен "case" и мисля ,че така ще се опрости малко.За въпроса каква е разликата,просто в под точка А) трябва да са 76,а на Б) някакъв друг брой.Емокостов не очаквам да се напише цялата задача защото и аз искам да разбера как ще стане.Ако ми дадете някакво начало мисля,че ще се оправя нататък.Благодаря предварително :)

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

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


Линк към този отговор
Сподели в други сайтове
#include <iostream.h>
#include <math.h>
 
double optionA()
{
double A,brch,indx;
cout<<"Vuvedete A= "
cin>>A;
 
}
return 0;
 
}
 
double optionB()
{
 
 
return 0;
}
 
double optionV()
{
 
}
 
return 0;
}
 
double optionG()
{
 
 
}
 
return 0;
}
 
 
int main()
{
char izbor;
 
cout << "Varianti:" << endl;
cout << "A) Redicata e s 76 elementa " << endl;
cout << "B) Redicata e s predvaritelno zadaden broi elementi" << endl;
cout << "V) Redicata e s posleden element 0" << endl;
cout << "G) Redicata e s elementi,dokato sumata im ne stane po golqma ot 176" << endl;
cout << "Vashiyat izbor: ";
 
cin >> izbor;
 
switch(izbor)
{
case 'a':
optionA();
break;
 
case 'b':
optionB();
break;
 
case 'v':
optionV();
break;
 
case 'g':
optionG();
break;
 
default:
break;
}
 
return 0;
 
}
Ей така смятам да изглежда,но как да направя това с индекса?Със масив доло горе се сещам как ще стане,но преподавателката каза ,че трябва да е без масив.

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


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

Тогава трябва да кажеш в какъв контейнер е редицата. Горе ти написах подточка А.

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

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


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

Може би аз не съм разбрал някъде или тотално съм объркал ...

 
#include <iostream>
#include <math.h>
int main()
{
int sequence[999];
int len=76;
int index;
int cidx;
int A;
cout<<"Vyvedi A: ";
cin>>A;
 
cidx = 0;
while ((cidx < len) && (sequence[cidx] > A))
    cidx++;
if(cidx == len) {
printf("No solution");
} else {
    index = cidx;
    for(cidx++; cidx < len; cidx++)
        if((sequence[cidx] <= A) && (sequence[cidx] > sequence[index]))
            index = cidx;
    printf("Solution is sequence[%d] = %dn", index+1, sequence[index]);
}
return 0;
system ("pause");
}Поправете ме... Благодаря на flare за началото :) 
Редактирано от Никола Стоянов (преглед на промените)

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


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

Поправете ме... Благодаря на flare за началото :)

Ми това е моя код...Къде въвеждаш стойности за редицата? Редактирано от flare (преглед на промените)

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


Линк към този отговор
Сподели в други сайтове
 
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int sequence[999];
int len=76;
int index;
int cidx;
int A;
{
cout<<"vyvedi a";
cin>>A;
for(cidx=0;cidx<999;cidx++)
cout<<"sequence["<<cidx<<"]=";
cin>>sequence[cidx];
 
 
cidx = 0;
while ((cidx < len) && (sequence[cidx] > A))
    cidx++;
if(cidx == len) {
printf("No solution");
} else {
    index = cidx;
    for(cidx++; cidx < len; cidx++)
        if((sequence[cidx] <= A) && (sequence[cidx] > sequence[index])){
            index = cidx;
printf("Solution is sequence[%d] = %dn", index+1, sequence[index]);
 
system ("pause");
return 0;
}
 
 
Така ли трябва да е ?
 fatal error C1004: unexpected end of file found
Къде греша ?
Редактирано от Никола Стоянов (преглед на промените)

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


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

Така ли трябва да е ? fatal error C1004: unexpected end of file foundКъде греша ?

Използвай тага code, моля. Бройките скоби не ти съвпадат, и на едно място направо ги няма. И инициализираш 10 елемента от масива, а обработваш 76...
#include <iostream>#include <math.h>using namespace std;int main(){    int sequence[999];    int len=76;    int index;    int cidx;    int A;    cout<<"vyvedi a";    cin>>A;    for(cidx=0;cidx<10;cidx++){        cout<<"sequence["<<cidx<<"]=";        cin>>sequence[cidx];    }    cidx = 0;    while ((cidx < len) && (sequence[cidx] > A))        cidx++;    if(cidx == len) {        printf("No solution");    } else {        index = cidx;        for(cidx++; cidx < len; cidx++)            if((sequence[cidx] <= A) && (sequence[cidx] > sequence[index]))                index = cidx;        printf("Solution is sequence[%d] = %dn", index+1, sequence[index]);    }    system ("pause");    return 0;}
Редактирано от flare (преглед на промените)

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


Линк към този отговор
Сподели в други сайтове
#include <iostream>#include <math.h>using namespace std;int main(){int sequence[76];int len=76;int index;int cidx;int A;{cout<<"vyvedi a";cin>>A;{cout<<"sequence["<<cidx<<"]=";cin>>sequence[cidx];}for(cidx=0;cidx<76;cidx++)cidx = 0;while ((cidx < len) && (sequence[cidx] > A))    cidx++;if(cidx == len) {	printf("No solution");} else {    index = cidx;    for(cidx++; cidx < len; cidx++)        if((sequence[cidx] <= A) && (sequence[cidx] > sequence[index])){            index = cidx;{		printf("Solution is sequence[%d] = %dn", index+1, sequence[index]);		}system ("pause");return 0;}

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

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


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

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

Еми аз ти постнах код с оправени скоби, ти ги махаш... Незнам как да се разберем. Сега си сложил пък една напълно излишна, която обаче много ефективно прецаква работата. Имаш 6 отварящи и 4 затварящи фигурни скоби, за какво говорим???Подреждай си кода - поставяй затварящите скоби на същото отстояние както началото на реда с отварящата. Слагай това вътре отместено навътре с 4 интервала или таб.Така ще виждаш тия работи. Аз за какво според теб те карам да използваш тага код.И за капак, сега си инициализираш редицата с 0, но защо си махнал цикъла за въвеждането - не стига че ползваш cidx неинициализирано, ами и няма как да си пробваш задачата само с 0. Редактирано от flare (преглед на промените)

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


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

Ами аз поставих кода който ти ми постна,и пак ми даде същата грешка затова реших,че си оставил нещо и аз да добавя.Много се опетлах аз честно.По принцим съм завършил Компютърна техника,сега записах Системно програмиране и съм много зле и не мога да наваксам нещата защото работя и ми е пълен ужас.Надявам се до утре да мога да успея да се справя с компилирането :).Много ти благодаря не искам да те занимавам повече за сега,защото сигорно по нататък ще имам още върпоси.Радвам се ,че има хора като теб които имат нерви да се занимават с такива като мен.Поздравии  :clap:

Редактирано от Никола Стоянов (преглед на промените)

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


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

...

Уф и аз съм изтървал една отваряща в повече, защото не очаквах да си променял оригиналния ми код... Внимавай с тия скоби...копирай пак. Редактирах го. Редактирано от flare (преглед на промените)

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


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

Пак не става ...  :(   Пробвай да го компилираш ти ако имаш възможност да не би при мен да е проблема нещо.

Редактирано от Никола Стоянов (преглед на промените)

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


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

Пак не става ...  :(   Пробвай да го компилираш ти ако имаш възможност да не би при мен да е проблема нещо.

Пробвай пак. И брой тия скоби. Няма да ти оправям повече синтактични грешки. "На сухо" е истински ад.

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


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

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

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


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

И ето отново имам въпрос :)) Последната под точка.когато декларирам s=0 и напиша да събира с + числата въведени в масива после в "while" ли трябва да стане проверката,защото не мога да го докарам пак.flare сигорно ме псуваш вече .. 

#include<iostream>using namespace std;int main (){double n,s=0;do{cout<<"vavedi chislo";cin>>n;s=s+n;}while(s<=500);cout<<"sumata ot chislata= "<<s<<endl;system ("pause");return 0;}

Ето така знам как да го направя с прости работи.
Редактирано от Никола Стоянов (преглед на промените)

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


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

Ето така знам как да го направя с прости работи.

Ми точно така е и другото.

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


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

Направих го така,но не спира цикъла когато стигне до 176.Когато проверих дали ги сумира всичко беше наред.Нещо в if-a трябва ли да променям?

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


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

Направих го така,но не спира цикъла когато стигне до 176.Когато проверих дали ги сумира всичко беше наред.Нещо в if-a трябва ли да променям?

Еми, постни тука кода да видя, де...

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


Линк към този отговор
Сподели в други сайтове
#include <iostream>#include <math.h>using namespace std;int main(){    int redica[999];    int element=76;    int index;    int i;    int s=0;	int A;    cout<<"vyvedete A = ";    cin>>A;    for(i=0;i<20;i++){        cout<<"redica["<<i<<"]=";        cin>>redica[i];    s=s+redica[i];	}    i = 0;    while ((i < element) && (redica[i] > A) && (s<=176))        i++;    if(i == element) {        printf("Nqma reshenie");    } else {        index = i;        for(i++; i < element; i++)            if((redica[i] <= A) && (redica[i] > redica[index]))                index = i;        printf("Reshenieto e v red [%d] = %dn", index+0, redica[index]);    }    system ("pause");    return 0;}

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


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

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

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

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

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

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

Вход

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

Вход

×

Информация

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