Збирка задачи

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Еве и уште по некоја задача со левел од Beginner па се до Expert...

Write a program which finds the factorial of a number entered by the user. (check for all conditions) (Beginner).

Create a program which generates fibonacci series till a number 'n' where 'n' is entered by the user. For eg. if the user enters 10 then the output would be: 1 1 2 3 5 8 (beginner)

Write a program to simulate a simple calculator. It should accept two number from the user along with the required operation to be performed. Addition, Subtraction, Division and Multiplication are the basic operations that should be implemented. Feel free to implement the other operations (Beginner)

Create a simple Palindrome checker program. The program should allow the user to enter a string and check whether the given string is a palindrome or not. Only digits and alphabets should be considered while checking for palindromes -- any other characters are to be ignored. (Intermediate)

Implement your own [search]strstr[/search] function. (Intermediate)

Write a program which will print all the pairs of prime numbers whose sum equals the number entered by the user. ( suggested by Aniseed ) (Intermediate)

Write a program which will perform the job of moving the file from one location to another. The source and destination path will be entered by the user. Perform the required error checking and handle the exceptions accordingly. (Intermediate)

Write a program which performs addition, subtraction, multiplication of matrices. The dimensions of both the matrices would be specified by the user (dynamic memory allocation required). Use of structure or a class to define the matrix would be a good idea. (Expert)

Write a program that allows you to input students' scores and weights. The program should then calculate a weighted average and score based on the data inputted by the user. (Beginner)

Make a program that allows the user to input either the radius, diameter, or area of the circle. The program should then calculate the other 2 based on the input. (Beginner)

Create a program that implements a database in C++. The fields are hard-coded, and the data is saved in a binary file. Although this isn't really flexibility, you aren't relying on any external libraries or functions. (Beginner)

Create a few classes that model playing cards. Then use this framework to create your favorite card game. (Intermediate)

Write a program that accepts XHTML, parses and removes the tags. Then it prints out the remaining text. (Intermediate)

Write a program which reverses the numerals in an integer, that is 326 becomes 623, etc.. (Intermediate)

Create a sophisticated linked list class. You should be able to insert and delete nodes anywhere in the list, and the nodes should have pointers to nodes both in front and behind them. (Intermediate)

Create a binary tree which has search and sorting functions. (Expert)

Create a Quine, that is, a program that prints out its own source code. (Expert)

Write a program to draw a rectangle, ellipse, square, circle, point and line based on user input. (Beginner)

Write a program to emulate Microsoft Paint. It should be possible to switch between different tools (circle, rectangle, eraser...) using pre-defined key strocks. - (Intermediate)

Write a program to plot a simple x-y graph for a harcoded function (e.g. y=cos(x)). It should be possible to zoom in on any part of the graph. - (Intermediate).

Write a program to plot a graph of given equation of form y=f(x) and a range for x as command line arguments. (e.g. my_graph_plotter -eq="y=x*x" -xmin=-10, -xmax=10) - (Expert). (PS: more to do with equation solving than graphics)

Write the classic brick-break-out game. E.g. see DX Ball. - (Expert).
 

The One

Оној шо ќутит а све знајт
Член од
16 март 2008
Мислења
189
Поени од реакции
39
dobri zadaci mi se svigjaat samo ako moze nekoj barem da gi resi za inetermediate zadacite i da gi postuva tuka odnapred fala.
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
dobri zadaci mi se svigjaat samo ako moze nekoj barem da gi resi za inetermediate zadacite i da gi postuva tuka odnapred fala.
Еве неколку решенија за задачите кои не бараат многу код и мислење.
П.С. Решенијава ќе ги пишувам тука на форумов (значи на памет), такада ако некој ги тестира и ако добие грешни резултати да не се чуди :)

Озаа задача:
Create a simple Palindrome checker program. The program should allow the user to enter a string and check whether the given string is a palindrome or not. Only digits and alphabets should be considered while checking for palindromes -- any other characters are to be ignored. (Intermediate)
Во Јава:
Код:
public class Palindrome {

public bool check(String str) {
str = str.replace(/[^a-zA-Z 0-9]+/g,'');
int i = 0;
int j = str.length();
while(i!=j){
if(str.charAt(i)!=str.charAt(j)){
return false;
break;
}
i++;
j--;
}
return true;
}

}

Озаа задача:
Write a program that accepts XHTML, parses and removes the tags. Then it prints out the remaining text. (Intermediate)
Исто така во Јава (Само бришењето на таговите):
Код:
public class RemovesTheTags {

public String remTag(String xhtml) {
String str = "";
for(int i=0; i<xhtml.length(); i++) {
if(xhtml.charAt(i).equals("[")) {
for(int j=0; xhtml.charAt(i).equals("]"); i++) {
i++;
}
}
str+= "" + xhtml.charAt(i);
}
return str;
}

}

Оваа задача:
Write a program which reverses the numerals in an integer, that is 326 becomes 623, etc.. (Intermediate)
Исто во Јава:
Код:
public class ReversesNumbers {

public int reverse(int number) {
int rev = 0;
while(number>0) {
int tmp = number % 10;
num /= 10;
rev = rev * 10 + tmp;
}
return rev;
}

}
Другите бидејки бараат повеќе мислење и повеќе пишување код, ако некој се нафати да ги решава арно, ако нe... ако ги решавам некад ќе го пишам решението.
 
Член од
24 јануари 2008
Мислења
1.135
Поени од реакции
140
Има некој што знае да решава задачи ?
 
Член од
24 јануари 2008
Мислења
1.135
Поени од реакции
140
Има има. Не гледаш по темиве.
Кажи што имаш ти?
Ако има тогаш дали ке можи некој да ми објасни како се решава оваа задача што ја постирав оти јас сум почетник прва година на фах. па сакам да ми објасни некој добро нека ја реши и да ми препорача некој туторијал за понатаму како да научам сам да си решавам задачи за да не ве замарам ок ? :kesa:
Ако е подобро и ако сака некој нека постира и слика од решавањето на задачата за да биди појасно?
Еве ја задачата:

 
Член од
24 јануари 2008
Мислења
1.135
Поени од реакции
140
Дали има некој да ми помогни околу оваа задача:


Дали е точно на овој начин да ја решавам задачата како на сликата што ја постирав подолу за да ги добијам резултатите т.е вредностите за "c" ?
Дали е таа формулата....пишете ми повеке коментари ок?

 
Член од
6 јуни 2009
Мислења
3.094
Поени од реакции
445
Точно е. Можиш евентуално константата е да ја запишиш попрецизно. Дефинирана е во math.h. Kaj double e = 2.71; ќе пишиш double e = M_E;
 
Член од
24 јануари 2008
Мислења
1.135
Поени од реакции
140
Точно е. Можиш евентуално константата е да ја запишиш попрецизно. Дефинирана е во math.h. Kaj double e = 2.71; ќе пишиш double e = M_E;
Фала за одговорот
Сега незнам што да коментирам за резултатите дали знаеш ти или пак некој друг ...што да да коментирам занив ?
Во задачата го пишува тоа да се коментираат резултатите што да пишам тука знае некој?
 
Член од
24 јануари 2008
Мислења
1.135
Поени од реакции
140
Фала за одговорот
Сега незнам што да коментирам за резултатите дали знаеш ти или пак некој друг ...што да да коментирам занив ?
Во задачата го пишува тоа да се коментираат резултатите што да пишам тука знае некој?
Е кај сте ајде ми треба помош незнам како да да напишам коментар за вредностите т.е резултатите за 'c' од задачата погоре што е на сликата и незнам како да напишам како да го објаснам кодот со кој е решена задачата. :nesvest:
 
R

Reve0ke

Гостин
Е кај сте ајде ми треба помош незнам како да да напишам коментар за вредностите т.е резултатите за 'c' од задачата погоре што е на сликата и незнам како да напишам како да го објаснам кодот со кој е решена задачата. :nesvest:
Се надевам ќе најдеш.:uvo:
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Одамна немам пишано на темава, па сега случајно ми текна па реков да пишам некоја задача. :)
На почеток на темата некој се жалеше дека му биле лесни задачите, па еве за тие што им се лесни првите задачи нека ги решаваат овие. :)

Прва задача:

Problem

You are given an N x N matrix with 0 and 1 values. You can swap any two adjacent rows of the matrix.

Your goal is to have all the 1 values in the matrix below or on the main diagonal. That is, for each X where 1 ≤ X ≤ N, there must be no 1 values in row X that are to the right of column X.

Return the minimum number of row swaps you need to achieve the goal.

Input

The first line of input gives the number of cases, T. T test cases follow.
The first line of each test case has one integer, N. Each of the next N lines contains N characters. Each character is either 0 or 1.

Output

For each test case, output
where X is the test case number, starting from 1, and K is the minimum number of row swaps needed to have all the 1 values in the matrix below or on the main diagonal.
You are guaranteed that there is a solution for each test case.

Limits

1 ≤ T ≤ 60
Small dataset

1 ≤ N ≤ 8
Large dataset

1 ≤ N ≤ 40

Sample

Input
3
2
10
11
3
001
100
010
4
1110
1100
1100
1000

Output
Case #1: 0
Case #2: 2
Case #3: 4


Втора задача

Problem

You receive a credit C at a local store and would like to buy two items. You first walk through the store and create a list L of all available items. From this list you would like to buy two items that add up to the entire value of the credit. The solution you provide will consist of the two integers indicating the positions of the items in your list (smaller number first).

Input

The first line of input gives the number of cases, N. N test cases follow. For each test case there will be:

One line containing the value C, the amount of credit you have at the store.
One line containing the value I, the number of items in the store.
One line containing a space separated list of I integers. Each integer P indicates the price of an item in the store.
Each test case will have exactly one solution.
Output

For each test case, output one line containing "Case #x: " followed by the indices of the two items whose price adds up to the store credit. The lower index should be output first.

Limits

5 ≤ C ≤ 1000
1 ≤ P ≤ 1000

Small dataset

N = 10
3 ≤ I ≤ 100

Large dataset

N = 50
3 ≤ I ≤ 2000

Sample

Input
3
100
3
5 75 25
200
7
150 24 79 50 88 345 3
8
8
2 1 9 4 4 56 90 3

Output
Case #1: 2 3
Case #2: 1 4
Case #3: 4 5

Трета задача:

Problem

A new year brings a new calendar, new challenges, and a lot of new fun in life. Some things, however, never change. There are still many great programming contests to be held, and our heroine Sphinny's passion for them remains unchanged.

There are several tournaments Sphinny is interested in. Each tournament will consist of a number of rounds. The organizer of each tournament has not decided on what date the tournament will start, but has decided how many rounds there will be in the tournament and how many days after the start date each round will be.

In some situations, two or more rounds (from different tournaments) can be scheduled on the same day. As Sphinny is so keen on problem solving, she will be happier if more rounds are scheduled on the same day. Her happiness value is computed as follows: for each day on which there are S rounds, her happiness will be increased by S2. Her happiness starts at 0 (don't worry — 0 is a happy place to start).

In the picture below there are three tournaments, each represented by a different color, and Sphinny's total happiness is 20. One tournament starts on the second day of the year, one starts on the fifth day of the year, and one starts on the sixth day of the year.



There are N days in the year. Each tournament will begin on any of the N days with equal probability. The big question for this year is what the expected value of Sphinny's happiness is.

As a perfectionist, she is not going to solve the problem approximately. Instead, she wants to know the result exactly. The number of tournaments is T, and there are NT equally likely ways to select the start dates of the tournaments. She is going to express her expected happiness as K+A/B, where K and B are positive integers and A is a non-negative integer less than B. If A is zero then B must be one, otherwise A and B must not have a common factor greater than one.

If a tournament starts late enough in the year, some of its rounds might be scheduled during the next year. Those rounds do not contribute to Sphinny's happiness this year.

Input

The first line of the input is a single integer C, the number of test cases. C tests follow. The first line of each test case is in the form

where N is the number of days in the year, and T is the number of tournaments. T lines then follow, one for each tournament, in the format

indicating that there are m rounds, and the i-th round will be held on day di of the tournament. The first round of a tournament is held on day 1 (d1 = 1).
Output

For each test, output one line of the form

Case #X: K+A/B

where X is the case number, starting from 1, and K, A and B are as described above.
Limits

1 ≤ C ≤ 50
1 ≤ N ≤ 109
2 ≤ m ≤ 50
1 < d2 < d3 < ... < dm ≤ 10000

Small dataset

1 ≤ T ≤ 2

Large dataset

1 ≤ T ≤ 50

Sample

Input
3
1 1
2 2
4 2
3 2 4
2 3
10 3
4 2 5 9
3 4 8
5 2 3 9 12

Output
Case #1: 1+0/1
Case #2: 5+1/8
Case #3: 11+19/25
 

back_rest

ex mod coder
Член од
19 јули 2006
Мислења
1.590
Поени од реакции
107
Од Google CodeJam се овие?
 

SkyDriver

Would like my bananna ?
Член од
31 јули 2008
Мислења
2.140
Поени од реакции
221
Yes :)
Само избрани се од полесна кон потешка, али ете, ако некој ги сака сите задачи ќе знае каде да ги најде. :)
 
Член од
20 мај 2010
Мислења
5
Поени од реакции
0
Еве нешо за класи

1. Да се дефинира класа триаголник со private податочни членови за секоја од неговите страни. Да се дефинираат со сет и гет ф-ции како и конструктор кој ќе ги валидира вредностите на страните.Да се дефинира член ф-ција на класата ePravoagolen() која ќе враќа Boolean вредност true доколку триаголникот е правоаголен , и false доколку не е. Класата да се тестира во main() ф-јата.


Решение
Код:
#include <cstdlib> 
#include <iostream> 
using namespace std; 
class Triagolnik{ 
      private: 
              int a; 
              int b; 
              int c; 
      public: 
             void setA(int x){ 
                  a=x; 
             } 
             void setB(int y){ 
                  b=y; 
             } 
             void setC(int z){ 
                  c=z; 
             } 
             bool test(){ 
                  if(c*c==a*a+b*b) 
                     return true; 
                  else 

                      return false; 
             } 
             Triagolnik(int x,int y,int z){ 
                            a=x; 
                            b=y; 
                            c=z; 
             } 
}; 
                   
int main(int argc, char *argv[]) 
{ 
    Triagolnik prv1(3,8,5); 
    prv1.setB(4); 
     
    if (prv1.test()==true){ 
       cout<<"E Pravoagolen"<<endl; 
    } 
    else{ 
         cout<<"Ne e Pravoagolen"<<endl; 
    } 
     
    system("PAUSE");[COLOR="Silver"]
--- надополнето ---

[/COLOR]Задача 2 - Класи

Да се дефинира класа Student која ќе содржи податочни членови за :
име, презиме , број на индех и 10 оцени (ocena[10]). Да се креира конструктор , сетери и гетери за секој од податочните членови. Да се дефинира член ф-јата pecati() која ќе ги печати податоците од студентот и неговиот просек.

Решение
Код:
#include <cstdlib> 
#include <iostream> 
 
using namespace std; 
class Student{ 
      private: 
              //static int brStudenti; 
              string ime; 
              string prezime; 
              int index; 
              int ocena[10]; 
      public: 
             void setPodatoci(){ 
                  cout<<"Vnesi ime:"<<endl; 
                  cin>>ime; 
                  cout<<"Vnesi prezime:"<<endl; 
                  cin>>prezime; 
                  cout<<"Vnesi broj na index:"<<endl; 
                  cin>>index; 
                  cout<<"Vnesi oceni:"<<endl; 
                  for(int i=0;i<10;i++){ 
                          cin>>ocena[i]; 
                          } 
                          } 
             Student(){ 
                        
                       ime="aaaa"; 
                       prezime="aaaa"; 

                       index=000000; 
                       for (int i=0;i<10;i++){ 
                           ocena[i]=5; 
                           } 
                       } 
             void pecati(){ 
                  float prosek; 
                  int suma=0; 
                  for(int i=0;i<10;i++){ 
                          suma=suma+ocena[i]; 
                          } 
                  prosek=suma/10; 
                  
cout<<ime<<"\t"<<prezime<<"\t"<<index<<"\t"<<prosek<<"\n"; 
                  } 
      }; 
int main(int argc, char *argv[]) 
{   Student s1; 
    s1.setPodatoci(); 
    s1.pecati(); 
    Student info[30]; 
    for(int i=0;i<30;i++){ 
            info[i].pecati(); 
            } 
    system("PAUSE");[COLOR="Silver"]
--- надополнето ---

[/COLOR]Креирање на класа Vektor со податочни членови x и y и пример за конструктор и operator overload.

Код:
class Vektor{ 
      public: 
             int x; 
             int y; 
             Vektor(){}; 
             Vektor(int a, int b){ 
                        x=a; 
                        y=b; 
             } 
             void pecati(){ 
                  cout<<"("<<x<<","<<y<<")"<<endl; 
             } 
             Vektor operator+(Vektor); 
             Vektor operator+(int); 
             Vektor operator*(int); 
              
}; 
Vektor Vektor::operator*(int param){ 
       Vektor temp; 
       temp.x=x*param; 
       temp.y=y*param; 
        
       return temp; 

       } 
Vektor Vektor::operator+(Vektor param){ 
       Vektor temp; 
       temp.x=x+param.x; 
       temp.y=y+param.y; 
       return temp; 
}; 
Vektor Vektor::operator+(int param){ 
       Vektor temp; 
        
       return temp; 
} 
int main(int argc, char *argv[]) 
{ 
   
    Vektor a(4,6); 
    Vektor b(8,9); 
    Vektor c=a*10; 
    c.pecati();[COLOR="Silver"]
}
--- надополнето ---

[/COLOR]Да се креира класа kompleksen која ќе опишува еден комплексен број .
- Класата да биде опишана со приватни податочни членови за реалниот и имагинарниот дел на бројот
- Да се дефинираат сет и гет ф-ции за секој од податочните членови.
- Да се креира конструктор , деструктор и конструктор за копирање
- Да се дефинираат операторите :
i. + за собирање на објекти од класата Kompleksen
ii. ++ како префикс
iii.+++ како потфикс

Решение

Код:
class Kompleksen{ 
      private: 
              int r,i; 
      public: 
            void setR(int x){ 
                 r=x; 
            } 
             
            void setI(int y){ 
                 i=y; 
            } 
             
            int getR(){return r;} 
             
            int getI(){return i;} 
             
            Kompleksen(int x=0,int y=0){ 
                r=x; 
                i=y;                
            } 
             
            ~Kompleksen(){}; 
             

            void pecati(){ 
                 if(i>=0) 
                 cout<<r<<"+"<<i<<"i"<<endl; 
                 else 
                 cout<<r<<i<<"i"<<endl; 
            } 
             
            Kompleksen(const Kompleksen &k){ 
                r=k.r; 
                i=k.i; 
            } 
             
            Kompleksen operator+(Kompleksen param){ 
                  Kompleksen temp; 
                  temp.r=r+param.r; 
                  temp.i=i+param.i; 
                  return temp;    
            } 
            Kompleksen operator++(){//++ kako prefix 
                       ++r; 
                       ++i; 
                       return *this; 
                        
            } 
            Kompleksen operator++(int){//++ kako postfix 
                        
                       Kompleksen temp(r,i); 
                       r++; 
                       i++; 
                       return temp; 
            } 
                              
}; 
 
int main(int argc, char *argv[]) 
{ 
    Kompleksen a(3,5), b(5,7); 
    Kompleksen c=a+b; 
    c.pecati(); 
    (a++).pecati(); 
    a.pecati(); 
    (++b ).pecati(); 
    b.pecati(); 
     
    system("PAUSE");
}


--- надополнето ---

Вовед во програмирање

Задача 1
Креирање на структура , датум и ф-ја која за аргумент прима објект од структурата датум и податочниот член godina го зголемува за 10.

Решение

Код:
#include <stdio.h> 
#include <stdlib.h> 
 
struct datum{ 
    int den; 
    int mesec; 
    int godina; 
}; 
 
struct datum dodaj10(struct datum); 
 
int main(int argc, char *argv[]) 
{ 
    struct datum denes; 
    printf("Koj den e denes: "); 
    scanf("%d",&denes.den); 
    printf("Koj mesec e denes: "); 
    scanf("%d",&denes.mesec); 
    printf("Koja godina: "); 
    scanf("%d",&denes.godina); 
     
    denes=dodaj10(denes); 
    printf("Posle 10 godini ke bide: %d.%d.%d 
\n",denes.den,denes.mesec,denes.godina); 

    system("PAUSE"); 
    return 0; 
} 
 
struct datum dodaj10(struct datum d){ 
    d.godina+=10; 
    return d; 
}


--- надополнето ---

Задача 2
Да се дефинира структура точка со податочни членови x и y кои ги дефинираат координатите. Да се дефинираат ф-ции:
-Void pecati (struct tocka) - која ја печати точката во форма (x,y)
-struct tocka pomesti (struct tocka, int , int) која ги зголемува вредностите за x и y.
-float rastojanie (struct tocka , struct tocka)- која го враќа растојанието помеѓу точките зададени како аргументи

Решение

Код:
#include <stdio.h> 
#include <stdlib.h> 
 
struct tocka{ 
    float x; 
    float y; 
}; 
 
void pecati(struct tocka); 
 
struct tocka pomesti(struct tocka,float,float); 
 
float rastojanie(struct tocka,struct tocka); 
 
int main(int argc, char *argv[]) 
{ 
    struct tocka M,N; 
    M.x=3.0; 
    M.y=4.0; 
    N.x=2.5; 
    N.y=-1.7; 
    pecati(M); 
    M=pomesti(M,2.5,3.1); 
    pecati(M); 
    printf("Rastojanieto megu dvete tocki e %.1f \n",rastojanie(M,N)); 
    system("PAUSE"); 
    return 0; 
} 
 
void pecati(struct tocka t){ 
    printf("(%.1f,%.1f) \n",t.x,t.y); 
} 
 
struct tocka pomesti(struct tocka t,float a,float b){ 
    t.x+=a; 
    t.y+=b; 
    return t; 

} 
 
float rastojanie(struct tocka t,struct tocka p){ 
    return sqrt((t.x-p.x)*(t.x-p.x)+(t.y-p.y)*(t.y-p.y)); 
}
Задача 3.
Да се дефинира структура студент со податочни членови за име , презиме и поени. Преку тастатура да се снесат податоци за n студенти , да се подредат според бројот на поени и да се испечатат. Со една линија да се одделат оние кои имаат повеќе од 50 поени од оние кои имаат помалку!

Решение

Код:
#include <stdio.h> 
#include <stdlib.h> 
 
struct student{ 
    char ime[15]; 
    char prezime[15]; 
    int poeni; 
}; 
 
int main(int argc, char *argv[]) 
{ 
    struct student a[100]; 
    int n,i,j; 
    printf("Vnesi broj na studenti: "); 
    scanf("%d",&n); 
    for(i=0;i<n;i++){ 
        printf("Vnesete podatoci za %d student\n",i+1); 
        printf("Ime: "); 
        scanf("%s",a[i].ime); 
        printf("Prezime: "); 
        scanf("%s",a[i].prezime); 
        printf("Poeni: "); 
        scanf("%d",&a[i].poeni); 
    } 
     
    struct student temp; 
     
    for(i=n-1;i>0;i--){ 
        for(j=0;j<i;j++){ 
            if(a[j].poeni<a[j+1].poeni){ 
                temp=a[j]; 
                a[j]=a[j+1]; 
                a[j+1]=temp; 
            } 
        } 
    } 
     
    for(i=0;i<n;i++){ 
        printf("%s\t%s\t%d\n",a[i].ime,a[i].prezime,a[i].poeni); 
        if(a[i].poeni>50 && a[i+1].poeni<50){ 
            printf("----------------------------------\n"); 
        } 
    } 
     

    system("PAUSE");
 

Kajgana Shop

На врв Bottom