1

(8 відповідей, залишених у C++)

Хоч якусь підказку можна?

2

(8 відповідей, залишених у C++)

LoganRoss написав:

При чому тут ваша програма і стек? Ви знаєте що таке стек?
У вас у програмі просто заповнюється масив випадковими (одним і тим же посівом, між іншим) числами, знаходиться найменший елемент, а потім просто міняються місцями останні два елементи.

Так що конкретизуйте що ви хочете зробити і навіщо вам стек, яке взагалі ТЗ, інакше ніхто не зможе допомогти.

Тільки у цій функції, не розумію як присвоїти змінним значення потрібних елементів черги :( (змінні min1 i min2)

Так черга чи стек? Яка функція? Конкретніше будь ласка.

Використовуючи стекову структуру, створити і вивести не впорядкований цифровий список. Поміняти два елементи місцями, що знаходяться після мінімального. Впахувати ситуацію кінця списку.
Можна це зробити?

3

(8 відповідей, залишених у C++)

reverse2500 написав:

зараз під стеком розуміється багато чого, якщо не зрозуміло що таке стек, то раджу взяти дізассемблер і отладчик і глінути власну програму там

Ось моя програма...

#include <iostream> 
using namespace std;
struct Node
{ int data; Node *next;};
struct Queue
{
    int size;
    Node *first;
    Node *last;
};
void Creation(Queue *Q)
{
    Q->first = new Node;
    Q->first->next = NULL;
    Q->last = Q->first;
    Q->size = 0;
}
int Top(Queue *Q)
{
    return Q->first->next->data;
}
 
void Add(Queue *Q)
{
    int value;
    cout << "Znachenie -> ";
    cin >> value;
    Q->last->next = new Node;
    Q->last = Q->last->next;
    Q->last->data = value;
    Q->last->next = NULL;
    Q->size++;
    cout << "Element dobavlen\n";
}
int Size(Queue *Q)
{
    return Q->size;
}
 
void PrintOcher(Queue *Q)
{
    Node *X = Q->first->next;
    while(X)
    {
        cout << X->data << "=>";
        X = X->next;
    }
    cout << endl;
}
void UdMinEl(Queue *Q)
{
    Node *X = Q->first->next;
    int n = 0, pm=0, nm=0, min1 = X->data, min2 = X->data; 
    X = X->next;
    while(X)
    {
        n++;
        if(X->data < min1)
        {
            pm = n + 1;
            nm = n + 2;
            min1 = X->data;
            min2 = X->data;
        }
        X = X->next;
    }
    Node *X1=Q->first->next;
    for(int i = 1; i <= pm; i++)
      X1 = X1->next;
    X1->data = min2;
   X1 = Q->first->next;
    for(int i = 1; i <= nm; i++)
       X1 = X1->next;
     X1->data = min1;
}
int main()
{
    Queue Q;
    Creation(&Q);
    int n;
    cout << "Введіть кількість елементів - ";
    cin >> n;
    cout << "Введіть елементи черги\n";
    for(int i = 1; i <=n; i++)
    {
        Add(&Q);
    }
    cout << "*** Черга***\n";
    PrintOcher(&Q);
    UdMinEl(&Q);
    cout << "***Черга після перестановки***\n";
    PrintOcher(&Q);
    system("pause");
    return 0;
}

Тільки у цій функції, не розумію як присвоїти змінним значення потрібних елементів черги :( (змінні min1 i min2)

void UdMinEl(Queue *Q)
{
    Node *X = Q->first->next;
    int n = 0, pm=0, nm=0, min1 = X->data, min2 = X->data; 
    X = X->next;
    while(X)
    {
        n++;
        if(X->data < min1)
        {
            pm = n + 1;
            nm = n + 2;
            min1 = X->data;
            min2 = X->data;
        }
        X = X->next;
    }
    Node *X1=Q->first->next;
    for(int i = 1; i <= pm; i++)
      X1 = X1->next;
    X1->data = min2;
   X1 = Q->first->next;
    for(int i = 1; i <= nm; i++)
       X1 = X1->next;
     X1->data = min1;
}

Програма заміняє 2 наступні елементи мінімальним, а як зробити щоб 2 наступні помінялись місцями?

4

(8 відповідей, залишених у C++)

Не можу розібратись зі стеком  *WALL*  Як цю програму можна реалізувати стеком?

#include <stdio.h>
#include <conio.h>
#include <locale>
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
void main()
{
     setlocale(0,""); 
    int n=6;
    int a[6];
    int min;
    cout<<"Початковий стек"<<endl;
    int mi=0;
    for (int i=n;i>0;i--)
    {    
        a[i]=(rand()%20)-10;
        cout<<a[i]<<" ";    
    }
    min=a[0];
    for (int i=0;i<n;i++)
    {
        if (a[i]<min) 
            {
                min=a[i];
                mi=i;
            }
    }
    cout<<endl<<"Кiнцевий стек"<<endl;
    int t;
    int q=a[mi+1];
    int w=a[mi+2];
    a[mi+1]=w;  a[mi+2]=q;
    for (int i=n;i>0;i--)
    {
        cout<<a[i]<<" ";
    }
    min=100000;
    mi=-1;
    for (int i =n; i>0;i--)
    {if (a[i]<min) 
            {
                min=a[i];
                mi=i;
            }
    }
    cout<<endl<<"Мiн елемент: "<<min<<endl;
    _getch();
    exit(1);
}

5

(0 відповідей, залишених у Бази даних)

Доброго дня! Дуже потрібна ваша допомога. Вже звертався до вас з цим питанням, але у MySQL. Отже, потрібно у формі вивести Прізвище_Боксера1 та Прізвище_Боксера2. Як це зробити?

6

(2 відповідей, залишених у Java)

Доброго дня! Допоможіть будь ласка з задачею.) "У файлі містяться прізвища людей. Потрібно зчитати їх з файлу, і порівняти. Якщо є однакові, тоді записати їх у файл file1.txt, a всі, які не співпадають, у файл file2.txt"
Ось початок роботи.) як це закінчити??? *WALL*

import java.io.*;
import java.util.*;

public class IndividualExercise {
     
    public static void main(String[] args) throws IOException {
 Scanner in = new Scanner(new File("work.txt"));
       String[] list=new String[100];
       String[] list1=new String[100];
        int z=0;
        int k=0;
        int i=0,j=0;
        String[] f=new String[100];
       while(in.hasNext()){
           list[i]=in.next(); 
           z++;
            i++;
}
        System.out.println("Number of worlds->"+z);
       for(i=0;i<z;i++)
            System.out.print(list[i]+" ");

7

(6 відповідей, залишених у Java)

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
import java.util.regex.Pattern;


public class IOText2 {
 public static void main(String args[]) throws FileNotFoundException {

  Pattern p = Pattern.compile("[^(\\w')(\\w-)]"); //важливо правильно визначити regexp


  Scanner scan = new Scanner(new FileReader(
    "Тут//шлях//до//файлу")).useDelimiter(p);
  Set<String> words = new HashSet<String>(); // дає значення, що не повторюються

  while (scan.hasNext()) {
   String s = scan.next();
   s = s.trim();
   if (!s.isEmpty())
    words.add(s.toLowerCase());
  }
  System.out.println(words.size()); // виведе кількість унікальних слів в тексті

  scan.close();
 }
}

8

(50 відповідей, залишених у Бази даних)

Так.. все так, велике Вам спасибі! *THUMBSUP*  *THUMBSUP*  *THUMBSUP*  *DRINK*

iovchynnikov написав:

А чому не можна зробити:

SELECT ID, NAME, 
  (SELECT COUNT(1) FROM BATTLE BTL WHERE 
     BTL.boxer_one = BX.id
     OR BTL.boxer_two = BX.id) BOXER_BATTLES
  FROM BOXER BX

Чи я неправильно зрозумів завдання?

SELECT BTL.id BATTLE_ID, 
       concat(
           B1.name, ' (', 
           (SELECT COUNT(1) FROM BATTLE BTL WHERE 
               BTL.boxer_one = B1.id
               OR BTL.boxer_two = B1.id), ' battles in total)') BOXER_ONE, 
       'vs', 
       concat(
           B2.name, ' (', 
           (SELECT COUNT(1) FROM BATTLE BTL WHERE 
               BTL.boxer_one = B2.id
               OR BTL.boxer_two = B2.id), ' battles in total)') BOXER_TWO
FROM BATTLE BTL 
       LEFT JOIN BOXER B1 ON BTL.boxer_one=B1.id
       LEFT JOIN BOXER B2 ON BTL.boxer_two=B2.id;

Це звичайно далеко не найшвидший запит, але без "поганого" юніона.

Більше прикладів: http://sqlfiddle.com/#!9/8d8ff1/19

9

(50 відповідей, залишених у Бази даних)

koala написав:

Вибачте, але це ви мене не зрозуміли. У вас крива структура. Звісно, ви можете викрутитися, SQL для цього і гнучкий, але без union ніяк не вийде. До речі, вам треба робити union у підзапиті, а потім з нього консолідувати дані по GROUP BY. Ну, хіба що можете курсорами і тимчасовими таблицями погратися, але краще вже union.

Я зрозумів.) Дуже дякую.)  *THUMBSUP*

10

(50 відповідей, залишених у Бази даних)

Вибачте, але ви мене не зрозуміли.( Я написав цей запит

select b1.SurName,b1.Name,count(boxer_id)
from battle
left join boxer as b1 on battle.Boxer_ID=b1.ID
group by b1.ID
union
select b2.SurName,b2.Name,count(BoxerTwo_ID)
from battle
left join boxer as b2 on battle.BoxerTwo_ID=b2.ID
group by b2.ID;

Тільки значення у таблиці Battle(поля:Boxer_ID BoxerTwo_ID) повторюються.) Як додати їх, щоб не використовувати об'єднання union?

11

(50 відповідей, залишених у Бази даних)

Так, була :( У мене виникли проблеми з цієї таблицею  *FACEPALM*  ви можете допомогти з цим? залишилось написати тільки цей запит  *DONT_KNOW*
І я ж вивів потрібну інформацію(запит зверху), тільки потрібно додати ці два значення... як це зробитии? *WALL*  *WALL*

12

(50 відповідей, залишених у Бази даних)

Доброго вечора всім.) Ось моя ЕР діаграма, потрібно вивести Прізвище боксера, і к-сть проведених боїв.
Це я пробував робити, але не получилось.. *WALL*

select b1.SurName,b1.Name,count(boxer_id)
from battle
left join boxer as b1 on battle.Boxer_ID=b1.ID
group by b1.ID
union
select b2.SurName,b2.Name,count(BoxerTwo_ID)
from battle
left join boxer as b2 on battle.BoxerTwo_ID=b2.ID
group by b2.ID;

Допоможіть будь ласка розібратись у ситуації, і підкажіть кращі варіанти реалізації

13

(10 відповідей, залишених у Бази даних)

Дякую.)

Sensetivity написав:
sn7770666k написав:

Мені потрібно вивести Прізвище і Ім'я "боксера1" та Прізвище і Ім'я "боксера2", як у таблиці Battle(Boxer_ID та BoxerTwo_ID).
Я не хочу переробляти цю діаграму ще раз. ви можете просто пояснити, як це зробити у даній ситуації?

misha_bondar_2012 написав:

Я трохи не зрозумів, що Ви намагаєтесь зробити. Вам треба для кожного Boxer_ID, BoxerTwo_ID окремо витягнути Boxer.SurName та Boxer.Name. Так навіщо Вам таблиця BoxerTwo?

Я написав вище.
Таблиця BoxerTwo вам не потрібна.

14

(10 відповідей, залишених у Бази даних)

Мені потрібно вивести Прізвище і Ім'я "боксера1" та Прізвище і Ім'я "боксера2", як у таблиці Battle(Boxer_ID та BoxerTwo_ID).
Я не хочу переробляти цю діаграму ще раз. ви можете просто пояснити, як це зробити у даній ситуації?

misha_bondar_2012 написав:

Я трохи не зрозумів, що Ви намагаєтесь зробити. Вам треба для кожного Boxer_ID, BoxerTwo_ID окремо витягнути Boxer.SurName та Boxer.Name. Так навіщо Вам таблиця BoxerTwo?

15

(10 відповідей, залишених у Бази даних)

там ж потрібно 2 рази витягати Прізвище і ім'я... чи що ти маєш на увазі?

Sensetivity написав:

Для чого служить таблиця BoxerTwo?
Можна з витягнути імена з таблиці Battle через boxer_id boxerTwo_id.

16

(10 відповідей, залишених у Бази даних)

misha_bondar_2012 написав:

А що Ви маєте на увазі під

через проміжна таблицю BoxerTwo

Проміжну*

17

(2 відповідей, залишених у Бази даних)

сорян..я не прикріпив фотографію проблеми.( я створий іншу тему, подивись будь ласка..
http://replace.org.ua/topic/7810/

misha_bondar_2012 написав:

Зараз подумаю. Ні не знаю як Вам допомогти...

18

(10 відповідей, залишених у Бази даних)

Доброго дня! Потрібно вивести Boxer.SurName та Boxer.Name для обох боксерів в таблиці Battle(Boxer_ID,BoxerTwo_ID) через проміжна таблицю BoxerTwo, як можна це зробити?

19

(2 відповідей, залишених у Бази даних)

error

20

(2 відповідей, залишених у C++)

Доброго вечора! Підкажіть будь-ласка чим це можна замінити?

char cConsole::toСyrillic(char с)
{
    switch (с)
    {
    case 'а': с = char(-96); break;
    case 'б': с = char(-95); break;
    case 'в': с = char(-94); break;
    case 'г': с = char(-93); break;
    case 'д': с = char(-92); break;
    case 'е': с = char(-91); break;
    case 'ё': с = char(-15); break;
    case 'ж': с = char(-90); break;
    case 'з': с = char(-89); break;
    case 'и': с = char(-88); break;
    case 'й': с = char(-87); break;
    case 'к': с = char(-86); break;
    case 'л': с = char(-85); break;
    case 'м': с = char(-84); break;
    case 'н': с = char(-83); break;
    case 'о': с = char(-82); break;
    case 'п': с = char(-81); break;
    case 'р': с = char(-32); break;
    case 'с': с = char(-31); break;
    case 'т': с = char(-30); break;
    case 'у': с = char(-29); break;
    case 'ф': с = char(-28); break;
    case 'х': с = char(-27); break;
    case 'ц': с = char(-26); break;
    case 'ч': с = char(-25); break;
    case 'ш': с = char(-24); break;
    case 'щ': с = char(-23); break;
    case 'ъ': с = char(-22); break;
    case 'ы': с = char(-21); break;
    case 'ь': с = char(-20); break;
    case 'э': с = char(-19); break;
    case 'ю': с = char(-18); break;
    case 'я': с = char(-17); break;
    case 'А': с = char(-128); break;
    case 'Б': с = char(-127); break;
    case 'В': с = char(-126); break;
    case 'Г': с = char(-125); break;
    case 'Д': с = char(-124); break;
    case 'Е': с = char(-123); break;
    case 'Ё': с = char(-16);  break;
    case 'Ж': с = char(-122); break;
    case 'З': с = char(-121); break;
    case 'И': с = char(-120); break;
    case 'Й': с = char(-119); break;
    case 'К': с = char(-118); break;
    case 'Л': с = char(-117); break;
    case 'М': с = char(-116); break;
    case 'Н': с = char(-115); break;
    case 'О': с = char(-114); break;
    case 'П': с = char(-113); break;
    case 'Р': с = char(-112); break;
    case 'С': с = char(-111); break;
    case 'Т': с = char(-110); break;
    case 'У': с = char(-109); break;
    case 'Ф': с = char(-108); break;
    case 'Х': с = char(-107); break;
    case 'Ц': с = char(-106); break;
    case 'Ч': с = char(-105); break;
    case 'Ш': с = char(-104); break;
    case 'Щ': с = char(-103); break;
    case 'Ъ': с = char(-102); break;
    case 'Ы': с = char(-101); break;
    case 'Ь': с = char(-100); break;
    case 'Э': с = char(-99);  break;
    case 'Ю': с = char(-98);  break;
    case 'Я': с = char(-97);  break;
    case 'і': с = 'i';  break;
    }
    return с;
}