Премини към съдържанието
  • Добре дошли!

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

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

     

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


TyRsEn
 Сподели

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

Да се състави програма,която съдържа следните функции:
-Съставяне на два динамично представени стека с целочислени данни, съдържащи се във външен файл.
-Сортиране на елементите в стековете по метода чрез прост избор/селекция.
-Запис на изходните резултати във външен файл.
Главна функция main()-с меню за избор на функции и проверка за състоянието на данните
 
Вярна ли ми е до сега задачата и как да я довърша? Нямам input file и функция, която показва сортираните стекове(display_file)-ако може малко помощ за тия функции
 struct elem { 
   int key; 
   elem *next;
} *stack;

void push(stack& S, int n) {
   stack p=S;
   S=new elem;
   S->key=n;
   S->next=p;
}

int pop(stack& S) {
    int n;
    stack p=S;
    n=S->key;
    S=S->next;
    delete p;
    return n; 
}

void sort(stack& s1) {
     stack s2=NULL;
     ofstream file;
     
     file.open("output.txt",ios::out);
     if(file) {
        while (s1) {
           file<<sort(s1, s2)<<" ";
           if (s2) file<<sort2(s2, s1)<<" ";
        }
        file<<endl;
        file.close();
        cout<<"dannite sa zapisani v output.txt";
     } else {
        cout<<"output.txt ne moje da se otvori";
        while (s1) {
           cout<<sort2(s1, s2)<<" ";
           if (s2) cout<<sort2(s2, s1)<<" ";
        }
     }
     cout<<endl;
}          
}
Линк към коментара
Сподели в други сайтове

gig93 Не е вярно макар че аз съм го писал това сортиране просто защото нещо не си я преписал

както трябва. Сега ако някой тука ти напише четенето от файла сигурно ще пуснеш темата в трети

форум да ти напишат и проверката хората.

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

До никъде ако някои я има цялата или може да я направи ще съм мн мн мн благодарен :)

 

Шашко - гледам ви на снимката с мацето - много сте готини, ама размърдай си сивите клетчици.

Сега това е някаква задача, решението е само за урока. Утре, като се наложи да правиш реални програми - пак ли във форум ще пишеш и ще питаш??

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

Шашко - гледам ви на снимката с мацето - много сте готини, ама размърдай си сивите клетчици.

Сега това е някаква задача, решението е само за урока. Утре, като се наложи да правиш реални програми - пак ли във форум ще пишеш и ще питаш??

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

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

Полесно щеше да е просто да кажеш че няма да помогнеш и готово  :)

 

Не си прав - най-лесно е да не ти обърнат внимание.

 

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

- Създаване на файл с данни за стоките - име , продажна стойност , покупна стойност;

- Да се извежда списък на всички стоки с въведените данни за тях;

- Списък на тези стоки , чиято разлика между продажната стойност и покупната стойност е по-голяма от 30% от покупната стойност на стоката;

- Стоката с максимална печалба да се изведе;

- Да може да се вмъква данни за нова стока;

- Промяна на продажната стойност по дадено име на стока.

- Да се оформи меню;

Много ви моля , помогнете ми.

 

Ето ти началото - като гледам колко си отчаян - току виж си си направил quick format.

 

Първо - задаваш си масив - stock(name, price_in,price-out) и масив - stock_30(name, price_in,price-out)

С цикъл въвеждаш стойностите едно по едно. Записваш във файл.

Меню с препратки към фунции

1. Отпечатване на всички данни.

2. Прочиташ записите един по един и тези с печалба над 30% ги записваш във втория масив.

3. Намиране артикула с най-голяма печалба.

4. Добавяне на нови артикули.

5. Редакция на съществуващи.

6. Изход.

 

Можеш ли да започнеш ???  :write a letter:

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

Не си прав - най-лесно е да не ти обърнат внимание.

 

 

Ето ти началото - като гледам колко си отчаян - току виж си си направил quick format.

 

Първо - задаваш си масив - stock(name, price_in,price-out) и масив - stock_30(name, price_in,price-out)

С цикъл въвеждаш стойностите едно по едно. Записваш във файл.

Меню с препратки към фунции

1. Отпечатване на всички данни.

2. Прочиташ записите един по един и тези с печалба над 30% ги записваш във втория масив.

3. Намиране артикула с най-голяма печалба.

4. Добавяне на нови артикули.

5. Редакция на съществуващи.

6. Изход.

 

Можеш ли да започнеш ???  write%20a%20letter.gif

С риск да направя offtopic, но 9 поста по-нагоре бях написал следното:

 

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

 

Поздрави !

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

 

Помощ не сме отказали на никого, но и сме се нагледали на теми от вида "напишете ми домашното". Колегите вече трябва да издигат транспаранти, че това не е "Писачи на домашно ЕООД" и в повече случаи сме ограничени от време - априори, трябва и да се работи. 

 

Нека колегата @6a6k0o0 не се сърди, но ей така на готово да дойдат нещата - не става. И това "сега да го направите, а после ще му мисля ..." сме го виждали достатъчно пъти, за да си направим изводите кога ще е това "после". Все пак това е Ваша задача, Ваш проблем и Вие ще получите съответното възнаградение за това, което сте направил по нея. Ние няма какво да мерим или да доказваме в случая ...

 

Тъй като се проточих доволно с този пост и да не е съвсем капо, ще приема, че все пак можем да започнем още с началото на нещата.

 

За разлика от @jhoro, аз ще препоръчам използването на структури и/или класове за представяне на съответния item. Работата с матрици за нещо, което си плаче за struct/class не мисля, че е удачна. Една структура item (name, sell_price, stock_price) е достатъчно минимална за случая. Въпросните списъци може да се направят с динамичен масив (или свързан списък, ако операциите изтриване/добавяне ще са повече). Записа на информация от клас/структура е засегнат в няколко теми от раздела по - рано и може да проверите там как точно се прави. А ако имате проблем, може да попитате в отделна тема или тук.

 

Поздрави и с уважение !

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

Здравейте!

 

Мъча една задача на C++,която трябва да бъде направена на Dev и само с използването на 'graphics.h'.Засега съм направил това:

http://dox.bg/files/dw?a=1aca92b25b.Направил съм трансформацията,но сега трябва да направя и мащабиране(Scaling) на автобуса,но тъй като автобуса не е едно цяло,а е съвкупност от няколко line,rectangle,circle фунцкии предполагам,че ще се прави мащабиране на всеки един елемент нарисуван със споменатите функции.

 

Може ли някой да помогне като даде някаква формула за мащабиране.Аз пробвах формулите : Xpr = (x - хf(нз какво е това))*Sx + xf и  Ypr = (y-yf)*Sy + yf.Всъщност не разбирам как работят и може би затова не се получава.

 

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

 

 

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

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

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

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

Забравил съм да сложа кода.Обекта не е от значение.Важно е да има диагонално преместване и мащабиране.

 

 initwindow(800,640);
  //  initwindow(639,479);
    int maxX = getmaxx();
    
    for(int i = 0,color=10;i +5<maxX ; i++ , color++)
    {
    
        //Road
        
        setcolor(DARKGRAY);
        line(3 , 580 , 800 , 580);
        //Sign
        setcolor(WHITE);
        rectangle(650, 500 , 668 , 580 );
        rectangle(600,470,710,500);
        outtextxy(610, 480, "  BUS STOP");
        
        
        
        //Bus
        
        setcolor(YELLOW);
        rectangle(10+i,515-i,100+i,565-i);
       
        circle(25+i,570-i,10);
        circle(85+i,570-i,10);
        line(100+i,515-i,120+i,495-i);
        line(100+i,565-i,120+i,545-i);
        line(120+i,495-i,120+i,545-i);
        line(10+i,515-i,33+i,495-i);
        line(33+i,495-i,120+i,495-i);
        
        //prozorci
        
        rectangle(20+i,530-i , 40+i ,540-i);
        rectangle(50+i,530-i , 70+i ,540-i);
        line(80+i,515-i,80+i,565-i);
        line(90+i,515-i,90+i,565-i);
        line(100+i,540-i,120+i,519-i);
       
       
        
        
        
            //
            if(i == 0)
            {    setcolor(WHITE);
                 outtextxy(200,600,"Natisni buton za startirane.");
                 getch();
            }
            
        delay(15);
        if(i < maxX) {cleardevice();}
        
        
       }
    
    getch();
    
system("PAUSE");
    return EXIT_SUCCESS;

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

за по-просто може да ползваш един мащабиращ коефициент за X и за Y иначе ако са различни ще трябва да ползваш елипси вместо окръжности, нещо от рода на  :  мащаба s/ms се изменя от 1.5 до 0.5

//Bus
        s=750-i;   ms=500;
        xf=i;  yf=500-i;   
        setcolor(YELLOW);
        rectangle(10*s/ms+xf,15*s/ms+yf,100*s/ms+xf,65*s/ms+yf);
        circle(25*s/ms+xf,70*s/ms+yf,10*s/ms);
        circle(85*s/ms+xf,70*s/ms+yf,10*s/ms);
        line(100*s/ms+xf,15*s/ms+yf,120*s/ms+xf,-5*s/ms+yf);

или ако ти се вижда сложно може да ползваш макроси

#define  MC   s/ms
#define  MX   s/ms+xf
#define  MY   s/ms+yf

//Bus
        s=750-i;   ms=500;
        xf=i;  yf=500-i;   
        setcolor(YELLOW);
        rectangle(10*MX,15*MY,100*MX,65*MY);
        circle(25*MX,70*MY,10*MC);
        circle(85*MX,70*MY,10*MC);
        line(100*MX,15*MY,120*MX,-5*MY);

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

моляяяяяя ви имам същата задача а нямам представа как да я направя моля помогнете че вече съм отчаян :( Ако може някой да ми помогне ще му бъда много благодарен. Да се състави програма , обслужваща търговията на магазин. -Създаване на файл с данни за стоките - име , продажна стойност , покупна стойност; -Да се извежда списък на всички стоки с въведените данни за тях;Списък на тези стоки , чиято разлика между продажната стойност и покупната стойност е по-голяма от 30% от покупната стойност на стоката;Стоката с максимална печалба да се изведе; -Да може да се вмъква данни за нова стока; -Промяна на продажната стойност по дадено име на стока. -Да се оформи меню; Много ви моля , помогнете ми.

ами покажете поне един счупен код де

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

може ли малко помощ относно една задача ? :)

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

Бихте ли ми помогнали за следната задача:Съставете програма, която намира броя на въведените цели числа.
Въвеждането се прекратява, когато се въведе числото -1. 
Направих я по следния начин:
 
#include "stdafx.h"
using namespace std;
#include<iostream>
#include<stdlib.h>
#include<conio.h>
void main(){
int num = 0;
int input = 0;
cout << "Input a positive number or 'x' to stop\n";
while (cin >> input) {
if (input > 0) {
num++;
}
cout << "Input another positive number or 'x' to stop\n";
}
cout << "nums are " << num << endl;
system("pause");
}
 

Направих го да спира да въвежда след бутона 'x',но не знам как да спре да въвежда след  -1 или някое друго определено число.

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

#include <stdio.h>

int main ()
{
    int count = 0;
    int input;
    printf("\n\ninput integer numbers, -1 to stop\n\n");
    while(1)
    {
        scanf("%d",&input);
	if (input != -1) count++;
        else break;
        printf ("\n\nup to now you have entered %d integer numbers\n\n",count);
    }
    printf ("\n\nyou entered total %d integer numbers before the -1\n\n",count);
    return 0;
}	
Линк към коментара
Сподели в други сайтове

chern защо трява да въвеждаш Х като гледам цикъла ще спре каквото и да

напишеш различно от число, а трябва да спира не по този начи а с -1.

И а в условието не пише да брои само положителните числа.

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

Може, дай да видим какво си написал досега и ще помагаме колкото можем.

Програмистът Гошо Тарикатски съхранява сорсовете на
своите програми в специален сейф. За да го обезопаси срещу
крадци решил да създаде сложно система за отключване. Тя се
задействала от два различни пулта, от които се въвеждали две
трицифрени числа. След като се въведат числата, се стартира
програма, която генерира кода за сейфа по следния начин:
Събира първата цифра на първото число с последната
цифра на второто число. Ако резултатът е двуцифрено число,
цифрите му се събират. Получената цифра се записва като първа
за кода.
Втората цифра се получава, като по същият начин се
обработят вторите цифри на двете числа.
След сумирането на последната цифра на първото число и
първата цифра на второто по посочената схема, се получава
третата цифра на кода.
Гошо е много добър програмист, но е затрупан от поръчки,
затова възлага на вас написването на програмата за получаване на
кода.
Програмата се нарича KASA и получава от клавиатурата
две трицифрени числа, след което извежда на екрана получения по
горната схема код, който също е трицифрено число.
Пример:
Вход:
492 851
Изход:
551
 
това e от  един PDF с задачи :)
а това ми е сорс кода :

 

#include <stdio.h>

#include <stdlib.h>
int main()
{
int n,n1,a,b,c,a1,b1,c1,sum1,sum2,sum3;
 
printf("Enter NUM1 :"); scanf("%d",&n);
printf("Enter NUM2 :"); scanf("%d",&n1);
a=n%10;
b=n/10%10;
c=n/100%10;
 
a1=n1%10;
b1=n1/10%10;
c1=n1/100%10;
 
sum1=c+a1;
sum2=b+b1;
sum3=a+c1;
 
 
printf("\n\n** \t %d \t %d \t %d \t **",a,b,c);
printf("\n\n** \t %d \t %d \t %d \t**\n",a1,b1,c1);
printf("\n\n ** %d ** %d ** %d **\n\n",sum1,sum2,sum3);
    
printf("\n\n");
system("PAUSE");
}

 

проблема е че незнам как например сбора на цифрите когато е над 9 да събера единичните цифри и  десетичните цифри

Редактирано от Dark Vader (преглед на промените)
Линк към коментара
Сподели в други сайтове

две едноцифрени числа дават сбор от 0 до 18,

така че ако е по-голям от 9 е само с 1 десетица.

 

if (sum1>9) sum1-=9;       // 10-1 e 9

if (sum2>9) sum2-=9; 

if (sum3>9) sum3-=9; 

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

две едноцифрени числа дават сбор от 0 до 18,

така че ако е по-голям от 9 е само с 1 десетица.

 

if (sum1>9) sum1-=9;       // 10-1 e 9

if (sum2>9) sum2-=9; 

if (sum3>9) sum3-=9; 

Благодария! :) 

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

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

Моля Ви да ми помогнете за следната задача по ПИК >Да се въведе едномерен масив с не повече от 100 и не по-малко от 10 елемента. Всеки елемент да се умножи по индекса си. Новополучения масив да се изведе на екрана. Да се намери сумата но елементите на масива< Много ще съм благодарен някой ако ми я напише защото си нямам на представа как трябва да стане стигам до тук и това е. Най-късно до 16-ти тази седмица. Извинявам се за поставения срок!

 

#include <iostream>

using namespace std;

int arr [15];

int i;

for (i=0; i<15; i++)

{

cin>>arr ;

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

Добавете отговор

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

Гост
Напишете отговор в тази тема...

×   Вмъкнахте текст, който съдържа форматиране.   Премахни форматирането на текста

  Разрешени са само 75 емотикони.

×   Съдържанието от линка беше вградено автоматично.   Премахни съдържанието и покажи само линк

×   Съдържанието, което сте написали преди беше възстановено..   Изтрий всичко

×   You cannot paste images directly. Upload or insert images from URL.

 Сподели

×
×
  • Добави ново...

Информация

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