C/C++

  • Креатор на темата Креатор на темата Драган
  • Време на започнување Време на започнување
Најбитно е да кажеш што поточно сакаш да направиш( какви информации ќе превземаш и како ќе ги обработиш тие податоци, структура на страната итн доколку не е некој таен проект :) ) па според тоа да ти препорача некој framework или програмски јазик со кој што можеш да го направиш тоа полесно. Исто така можеш и да го тупиш до даска , да направиш нешто како поголемите компани што прават користејќи 2-3 програмски јазици секојза посебна намена ..и то.


Сакам да преземам текст податоци и потоа да ги сортирам и да ги испечатам како статистика во посебни групи. Само да автоматизирам процес да не морам сам да проверувам се посебно. Ќе пробам сега за сега со Python, кога ќе можам, не ми е некој голем приоритет, чисто ради забава и да поднаучам нешто плус а и, како што реков, да си скратам на работа.
Мислам дека нема да има потреба да го комликувам до толку. ;)
 
Ај ако може помош со задачиве:
1. Секунди да се претворат во Часови, минути и секунди. Значи рандом бројка од секунди да се претвори во часови минути и секунди.
2. Одредена сума на денари да се пресмета како збир од 5000, 1000, 500, 100, 50, 10, 5, 2, 1 денари така што ке се искористат најмал број на банкноти и монети.​
Ми треба за Ц-јазик во CodeBlocks. :)

 
Ај ако може помош со задачиве:
1. Секунди да се претворат во Часови, минути и секунди. Значи рандом бројка од секунди да се претвори во часови минути и секунди.
2. Одредена сума на денари да се пресмета како збир од 5000, 1000, 500, 100, 50, 10, 5, 2, 1 денари така што ке се искористат најмал број на банкноти и монети.
Ми треба за Ц-јазик во CodeBlocks. :)

1 нешто вака:
Код:
#include <stdio.h>

int main(int argc, char** argv) {
    printf("Vnesi go brojot na sekundi\n");
    int seconds;
    scanf("%d", &seconds);
    int s = seconds;
    int minutes = 0;
    int hours = 0;
    while (seconds >= 3600) {
        hours++;
        seconds -= 3600;
    }
    while (seconds >= 60) {
        minutes ++;
        seconds -= 60;
    }
    printf("%d seconds = %d hours, %d mins %d seconds", s, hours, minutes, seconds);
    return 0;
}
2. нешто вака
Код:
#include <stdio.h>

int main(int argc, char ** argv) {
    int apoeni[] = {5000, 1000, 500, 100, 50, 10, 5, 2, 1};
    int zastapenost[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
    printf("Vnesi ja vrednosta na sumata vo denari\n");
    int suma;
    scanf("%d", &suma);
    int s = suma;
    for (int i = 0; i < 9; i++) {
        while (suma >= apoeni[i]) {
            suma -= apoeni[i];
            zastapenost[i] += 1;
        }
    }
    printf("%d denari, mozat da se pretstavat kako: \n", s);
    for(int i = 0; i < 9; i++) {
        if (zastapenost[i] > 0) {
            printf("%d * %d denari\n", zastapenost[i], apoeni[i]);
        }
    }
    return 0;
}
--- надополнето: 16 октомври 2013 во 01:39 ---
Ако сум заебал некаде се извинувам, касно е јеби га :)
 
1 нешто вака:
Код:
#include <stdio.h>
 
int main(int argc, char** argv) {
    printf("Vnesi go brojot na sekundi\n");
    int seconds;
    scanf("%d", &seconds);
    int s = seconds;
    int minutes = 0;
    int hours = 0;
    while (seconds >= 3600) {
        hours++;
        seconds -= 3600;
    }
    while (seconds >= 60) {
        minutes ++;
        seconds -= 60;
    }
    printf("%d seconds = %d hours, %d mins %d seconds", s, hours, minutes, seconds);
    return 0;
}
2. нешто вака
Код:
#include <stdio.h>
 
int main(int argc, char ** argv) {
    int apoeni[] = {5000, 1000, 500, 100, 50, 10, 5, 2, 1};
    int zastapenost[] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
    printf("Vnesi ja vrednosta na sumata vo denari\n");
    int suma;
    scanf("%d", &suma);
    int s = suma;
    for (int i = 0; i < 9; i++) {
        while (suma >= apoeni[i]) {
            suma -= apoeni[i];
            zastapenost[i] += 1;
        }
    }
    printf("%d denari, mozat da se pretstavat kako: \n", s);
    for(int i = 0; i < 9; i++) {
        if (zastapenost[i] > 0) {
            printf("%d * %d denari\n", zastapenost[i], apoeni[i]);
        }
    }
    return 0;
}
--- надополнето: 16 октомври 2013 во 01:39 ---
Ако сум заебал некаде се извинувам, касно е јеби га :)

Фала многу :) , а има ли некој начин да се решат без користење на if/else/while/for.. ?
 
Фала многу :) , а има ли некој начин да се решат без користење на if/else/while/for.. ?


Mоже, со делење и модул. Еве ја првата:
Код:
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char** argv)
{
    printf("Vnesi go brojot na sekundi\n");
    int seconds;
    scanf("%d", &seconds);
    int s = seconds;
    int hours = s/3600;
    s = s%3600;
    int minutes = s/60;
    s = s%60;
    printf("%d seconds = %d hours, %d mins %d seconds", seconds, hours, minutes, s);
    return 0;
}
 
Ај ако може помош со задачиве:
1. Секунди да се претворат во Часови, минути и секунди. Значи рандом бројка од секунди да се претвори во часови минути и секунди.
2. Одредена сума на денари да се пресмета како збир од 5000, 1000, 500, 100, 50, 10, 5, 2, 1 денари така што ке се искористат најмал број на банкноти и монети.
Ми треба за Ц-јазик во CodeBlocks. :)


структурно, а :D ?
инаку втората треба без for da се реши, еве мој метод:

Код:
#include <stdio.h>
 
int main () {
int a5000, a1000, a500, a100, a50, a10, a5, a2, a1, vlez;
printf("Vnesi suma vo denari:\n");
scanf("%d", &vlez);
a5000 = vlez / 5000;
a1000 = (vlez % 5000) / 1000;
a500 = (vlez % 1000) / 500;
a100 = (vlez % 500) / 100;
a50 = (vlez % 100) / 50;
a10 = (vlez % 50) / 10;
a5 = (vlez % 10) / 5 ;
a2 = (vlez % 5) / 2;
a1 = (vlez % 2);
 
printf("%d * 5000\n", a5000);
printf("%d * 1000\n", a1000);
printf("%d * 500\n", a500);
printf("%d * 100\n", a100);
printf("%d * 50\n", a50);
printf("%d * 10\n", a10);
printf("%d * 5\n", a5);
printf("%d * 2\n", a2);
printf("%d * 1\n", a1);
 
 
/* Kraj na kodot */
return 0;
}
 
Ај малце помош. Задачата е да се спојат две еднострано поврзани листи, но притоа да не се додаваат дупли елементи. На пример од 2, 3, 5 и 1, 3 да се добие 1, 2, 3, 5.
Е сега јас имам идеја како ама никако да го напишам тоа што го имам замислено. Еве

PHP:
node * joinLists (node *l1, node *l2)
{
    // Vasiot kod tuka...
    node *r, *s;
    if((l1 == NULL) || (l2 == NULL))
        return NULL;
    if(l1 -> info < l2 -> info) {
        s = r = l1;
        l1 = l1 -> link;
    }
    else {
        s = r = l2;
        l2 = l2 -> link;
    }
    while(l1 !=NULL && l2 != NULL) {
        if(l1 -> info < l2 -> info) {
            r -> link = l1;
            r = l1;
            l1 = l1 -> link;
        }
        else if(l1 -> info > l2 -> info) {
            r -> link = l2;
            r = l2;
            l2 = l2 -> link;
        }
        else {
            //овде нели ќе оди кога двата елементи ќе бидат исти, само не знам што наредби да внесам...
        } 
    }
 
//овде нели ќе оди кога двата елементи ќе бидат исти, само не знам што наредби да внесам...

Не ти треба овој дел, само стави во првиот if помало или еднакво.
Тоа ќе значи дека во случај на еднакво ќе земаш елемент од првата низа, што е сосема во ред бидејќи вредноста е иста па сеедно е дали е од првата или втората низа.
 
Не ти треба овој дел, само стави во првиот if помало или еднакво.
Тоа ќе значи дека во случај на еднакво ќе земаш елемент од првата низа, што е сосема во ред бидејќи вредноста е иста па сеедно е дали е од првата или втората низа.

Ама така ете ако е првата листа 2, 3, 5, а втората 3 и сега кај 3 и 3 ќе го пише ова првово од првата листа и ке отиде на 5 и после ќе ги спореди 5 и 3 и пак ќе го пише и второто 3...
 
Ама така ете ако е првата листа 2, 3, 5, а втората 3 и сега кај 3 и 3 ќе го пише ова првово од првата листа и ке отиде на 5 и после ќе ги спореди 5 и 3 и пак ќе го пише и второто 3...
Ај ако не те мрзи стај ги тука тест примерите да видиме на кој пример ти паѓа, полесно е за дебагирање. :)
 
Ај ако не те мрзи стај ги тука тест примерите да видиме на кој пример ти паѓа, полесно е за дебагирање. :)

Со ова:
PHP:
node * joinLists (node *l1, node *l2)
{
    // Vasiot kod tuka...
    node *r, *s;
    if((l1 == NULL) || (l2 == NULL))
        return NULL;
    if(l1 -> info < l2 -> info) {
        s = r = l1;
        l1 = l1 -> link;
    }
    else {
        s = r = l2;
        l2 = l2 -> link;
    }
    while(l1 !=NULL&&l2 != NULL) {
        if(l1 -> info <= l2 -> info) {
            r -> link = l1;
            r = l1;
            l1 = l1 -> link;
            l2 = l2 -> link;
        }
        else if(l1 -> info > l2 -> info) {
            r -> link = l2;
            r = l2;
            l2 = l2 -> link;
        }
 
    }
    if(l1 != NULL) r -> link = l1;
    else r -> link = l2;
    return(s);
}

test1.jpg
test2.jpg

Првиот и третиот ред се бројот на елементи во листата.
 
Што по приватна порака, пишете тука каде e проблемот и други да научат нешто :)
 
Со ова:
PHP:
node * joinLists (node *l1, node *l2)
{
    // Vasiot kod tuka...
    node *r, *s;
    if((l1 == NULL) || (l2 == NULL))
        return NULL;
    if(l1 -> info < l2 -> info) {
        s = r = l1;
        l1 = l1 -> link;
    }
    else {
        s = r = l2;
        l2 = l2 -> link;
    }
    while(l1 !=NULL&&l2 != NULL) {
        if(l1 -> info <= l2 -> info) {
            r -> link = l1;
            r = l1;
            l1 = l1 -> link;
            l2 = l2 -> link;
        }
        else if(l1 -> info > l2 -> info) {
            r -> link = l2;
            r = l2;
            l2 = l2 -> link;
        }
 
    }
    if(l1 != NULL) r -> link = l1;
    else r -> link = l2;
    return(s);
}

Прегледај го приврзокот 74751
Прегледај го приврзокот 74752

Првиот и третиот ред се бројот на елементи во листата.

probaj so ova, probav za 2-3 test primeri tocna beshe
Код:
#include "stdafx.h"
#include <iostream>
 
struct node {
    node * pNext;
    int data;
};
 
node ** join(node * left, node * right)
{
    if( left == nullptr) return &right;
    if( right == nullptr) return &left;
 
    node ** result = nullptr, ** start = nullptr;
    while(left != nullptr && right != nullptr)
    {
        bool both = false;
        node ** min = nullptr;
        if(left->data < right->data) min = &left;
        if(left->data > right->data) min = &right;
        if(min == nullptr) {
            min = &left;
            both = true;
        }
 
        if( result ) {
            if( (*result)->data != (*min)->data ) {
                (*result)->pNext = new node;
                result = &( (*result)->pNext );
                (*result)->data = (*min)->data;
                (*result)->pNext = nullptr;
            }
        }
        else {
            result = new node*;
            start = result;
            (*result) = new node;
            (*result)->data = (*min)->data;
            (*result)->pNext = nullptr;
        }
        if(!both) *min = (*min)->pNext; else {left = left->pNext; right=right->pNext;}
    }
    node * rem = nullptr;
    if(right == nullptr && left)
    {
        rem = left;
    }
    if(left == nullptr && right)
    {
        rem = right;
    }
    while(rem) {
        if( (*result)->data != rem->data ) {
            (*result)->pNext = new node;
            result = &( (*result)->pNext );
            (*result)->data = rem->data;
            (*result)->pNext = nullptr;
        }
        rem = rem->pNext;
    }
 
    return start;
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    node n1, n2, n3, n4, n5, n6, n7;
    node m1, m2, m3, m4, m5, m6, m7;
 
    n1.data = 2;
    n1.pNext = &n2;
    n2.data = 4;
    n2.pNext = &n3;
    n3.data = 6;
    n3.pNext = &n4;
    n4.data = 8;
    n4.pNext = nullptr;
    n5.data = 0;
    n5.pNext = &n6;
    n6.data = 0;
    n6.pNext = nullptr;
    n7.data = 0;
    n7.pNext = nullptr;
 
    m1.data = 1;
    m1.pNext = &m2;
    m2.data = 3;
    m2.pNext = &m3;
    m3.data = 5;
    m3.pNext = &m4;
    m4.data = 7;
    m4.pNext = &m5;
    m5.data = 9;
    m5.pNext = nullptr;
    m6.data = 0;
    m6.pNext = nullptr;
    m7.data = 0;
    m7.pNext = nullptr;
 
 
    node ** r = join(&n1, &m1);
    node * curr = *r;
    while(curr)
    {
        std::cout << curr->data << " ";
        curr = curr->pNext;
    }
    int d; std::cin >> d;
    return 0;
}
 
Код:
poc1=p;
while(p!=NULL){
if(p->info==((p->link)->info)){
d=p->link;
p->link=d->link;
free(d->link);
}
else {p=p->link;}
 
}//gi briseme duplikatite od p listata
p=poc1;
Зошто циклусот постојано кружи? иначе алгоритмот би требало да ги брише сите дупликати од листата.. poc1,p и d се пок ?
 

Kajgana Shop

Back
На врв Bottom