61

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

koala написав:

Ніяк. Блок-схеми складають перед написанням коду, зазвичай спагеті-коду. Структурний код не потребує блок-схем, і жоден код не потребує блок-схем після написання.
І так, ваша блок-схема структурно відповідає цьому коду, треба тільки її заповнити.

Дякую, бо засумнівався чи вірна вона
Викладач дав завдання створити програму та зробити блок схему
Програму написав, але з блок схемою виникла проблема
Дякую, що допомогли її вирішити

62

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

Як записати блок-схему для цієї ділянки коду?

if ((i<=j) && (i<=k))
 cout <<"\nmin=(a2)=" << i<<"\n";

 else
 if ((j<=i) && (j<=k))
  cout << "\nmin=(a+2b-c)=%d" <<j<<"\n";

  else
  if ((k<=i) && (k<=j))
   cout << "\nmin=(c)= " <<k<<"\n";

Таким чином?

63

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

FakiNyan написав:

зробіть з 5 значень, цього має бути достатньо, аби показати, що ви розумієте то, а якщо захоче 50, то просто замініть 5 на 50, і нехай сама вводить, а якщо скаже - "ну, теперь вводь", то ви кажіть - може вам ще грядку перекопати? вам платять гроші, аби ви нас вчили, і перевіряли, чи ми все правильно робив, я код написав, завдання виконав, а ви перевіряйте.

найкраще, що я бачив в інтернеті на сьогодні. дякую!

64

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

FakiNyan написав:

ось це масив float'ів

float F[3] = {0.123, 0.324, 1.343};

тільки вам треба 50, замість 3, і заповнювати його в циклі, через консолю, вручну. Але ваш викладач, певно, головою вдарився, бо це він хоче, аби ви з клавіатури 50 ось таких от значень вводили.  *WALL*

та да, вона якась шизанута, я зрозумів, дякую!

65

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

FakiNyan написав:

то масив float'ів, певно

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

66

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

Завдання: Оголосити нецілочислений масив F[50]. Ввести значення елементів масиву з
       клавіатури. Замінити негативні елементи масиву їхнім квадратом, інші обнулити.
       Вивести отриманий масив на екран.

67

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

Як тоді потрібно записати, щоб не було таких неприємних речей?

koala написав:
double **B
cout << B[i];

B - вказівник на вказівник (тут це може використовуватися як масив масивів)
Ви виводите i-й елемент масиву B, тобто вказівник. Чого ви очікуєте?

68

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

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

koala написав:
double **B
cout << B[i];

B - вказівник на вказівник (тут це може використовуватися як масив масивів)
Ви виводите i-й елемент масиву B, тобто вказівник. Чого ви очікуєте?

69

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

Як виправити цю дурню?
https://replace.org.ua/uploads/images/8036/5f6f15b3236b838c80cb0baebc7ea664.png


#include "stdafx.h"
#include <iostream> 
#include <math.h>
#include <iomanip>
using namespace std;

int main()
{
    int i, j;
    unsigned N = 0, M = 0,A=0;  //n -stolbci m -stroki b-svob el
    cout << "M= "; cin >> M; cout << "N= "; cin >> N;
    double ** arr = new double*[N];
    for (i = 0; i < N; i++) {
        arr[i] = new double[M];
        for (j = 0; j < M; j++)
            arr[i][j] = rand() % 10 - 5;
    } 
    cout << "matrix A:\n";
    for (i = 0; i<N; i++)
    {
        for (j = 0; j<M; j++)
            cout << setw(7) << setprecision(2) << arr[i][j]; 
        cout << "\n";
    }
    double **B = new double*[A];
    cout << "Svobodni cleni matrix" << endl;
    for (int i = 0; i < M; i++)
    {
        cout << "svob cl: " << "[" << i << "] = ";
        cout << B[i];
        cout << "\n";
    }
    int x = 0;
    cout << endl << "lin rivnanya" << endl;
    for (i = 0; i < M; i++)
        for (j = 0; j < N; j++)
        {
            cout << arr[i][j] << "x" << ++x;
            if (j != 2) 
                cout << " + ";
            if (j == 2) 
            {
                cout << " = " << B[i];
                cout << endl;
            }

        }
    cout << endl;
    system("pause");
    system("cls");
    delete[] arr[i];
    delete[] B[i];
    system("pause");
    return 0;
}

70

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

змінив код з ціїє частини і програма некорректно працює,

    determinant = det(arr, N, M); 
    cout << "\ndeterminant: " << determinant << "\n";

    if (determinant) inverse(arr, determinant, N, M); 
    else cout << "obrantoy matrici net";
    b = 1 / determinant *ar[i][j];
    cout << "res " << b << endl;
    getchar();
    system("pause");
    for (i = 0; i<N; i++)
        delete[] arr[i];
    delete[] ar[i];
    delete[] arr;
    return 0;
}
koala написав:

Стосовно помилок: видаліть функцію Gauss - більшість помилок у ній, а вона ніде не викликається.
І ви так і не написали, що саме намагаєтеся зробити. "Знайти вільні члени", якщо більше нічого в умові не сказано, ви можете на Tinder без будь-якої математики.

71

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

Завдання: знайти зворотню матрицю.
Роблю по цій інструкції: http://ru.solverbook.com/spravochnik/ma … j-matricy/
Можливо я щось роблю не те, будь-ласка підскажіть.

koala написав:

Стосовно помилок: видаліть функцію Gauss - більшість помилок у ній, а вона ніде не викликається.
І ви так і не написали, що саме намагаєтеся зробити. "Знайти вільні члени", якщо більше нічого в умові не сказано, ви можете на Tinder без будь-якої математики.

72

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

Помилки: https://pastenow.ru/4TAIK
Я не могу зрозуміти, як тут оголосити вільні члени та їх вивести, щоб потім дорахувати зворотню матрицю.
Код "вільних членів" я знайшов в інеті і намагаюся переробити, але не виходить
Дивіться в мене є повний код:

#include "stdafx.h"
#include<iostream>
#include<stdlib.h>
#include<time.h>
#include <iomanip>

using namespace std;

//алгебраїчні доповнення генерація їх a[row][col] 
double add(double** a, unsigned row, unsigned col, unsigned N, unsigned M)
{
    double b[4][4]; //якщо матриця дуже велика змініть 
    unsigned i, j, bi, bj;

    for (i = 0, bi = 0; i<N; i++)
    {
        if (i != row)
        {
            for (j = 0, bj = 0; j<M; j++)
                if (j != col)
                {
                    b[bi][bj] = a[i][j];
                    bj++;
                }
            bi++;
        }
    }

    if ((row + col) % 2)
        return b[0][1] * b[1][0] - b[0][0] * b[1][1];
    else
        return b[0][0] * b[1][1] - b[0][1] * b[1][0];
}
//визначник матриці
double det(double **a, unsigned N, unsigned M)
{
    int i;
    double sum;
    for (i = 0, sum = 0.; i<N; i++)
        sum += a[i][0] * add(a, i, 0, N, M);
    if (sum < 0)
        cout << "ERROR DETERMINANT NOL'";
    return sum;}
//обернена матриця
void inverse(double **a, double d, unsigned N, unsigned M)
{double **a1 = new double*[N];
for (int i = 0; i<N; ++i) {a1[i] = new double[M];}
    double cur;
    unsigned i, j;
    for (i = 0; i < N; i++)
        for (j = 0; j < M; j++)
            a1[i][j] = add(a, i, j, N, M) / d;
    for (i = 0; i < N; i++)
        for (j = i + 1; j < M; j++)
        {    cur = a1[i][j];
            a1[i][j] = a1[j][i];
            a1[j][i] = cur;}
    if (d < 0)
        cout << "Error \n";
    else {cout << "\nobratnya matrix :\n";
        for (i = 0; i <N; i++){
            for (j = 0; j < M; j++)
                cout << setw(7) << a1[i][j];
            cout << "\n";}}}
void Gauss(double **X, double **A[N][N + 1], unsigned N, unsigned M) // вільні члени
{
    double **a1 = new double*[N];
    int  r; // робочий масив з вільних членів  
    double temp;
    int i, j, k; // робочі змінні
    double ** B = new double*[N]; 

                 // копіювання в матрицю  A 
    for (i = 0; i < N; i++)
    {
        B[i] = A[i][N]; // копіювання попередніх численів
        X[i] = 0;
    }

    // прямой ход 
    for (i = 0; i < N; i++)
    {
        if (A[i][i] != 0)
        {
            // віднімаємо рядок від попередніх 
            for (k = (i + 1); k < N; k++)
            {
                r = A[k][i] / A[i][i];
                for (j = i; j < N; j++) A[k][j] -= A[i][j] * r;
                B[k] -= B[i] * r;
            }
        }
        else
        {
            // шукаємо не нульовий елемент 
            for (j = (i + 1); j < N; j++)
            {
                if (A[j][i] != 0) break;
            }
            // якщо не знайдено рішення не існує

            if (j == N)
            {
                cout<<"reshenya neisnue\n";
                exit(1);
            }


            else // якщо знайдено то міняємо місцями
            {
                // матриця 
                for (k = i; k < N; k++)
                {
                    temp = A[i][k];
                    A[i][k] = A[j][k];
                    A[j][k] = temp;
                }
                // правая часть 
                temp = B[i];
                B[i] = B[j];
                B[j] = temp;
                // зниження i на одиницю щоб цикл повторював перевіркі й попав в обчислення рядку з попередніх 
                i--;
            }
        }
    }

    // зворотній хід 
    for (i = N; i >= 0; i--)
    {
        int s = 0;
        for (j = (i + 1); j < N; j++) s += A[i][j] * X[j];
        X[i] = (B[i] - s) / A[i][i];
    }
    // виведення трикутної матриці
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
    cout << A[i][j] << " "<<"\n"; 
        cout<< B[i]<<" "<<"\n";
    }
}
//головна програма 
int main()
{
    unsigned N = 0, M = 0; //розмір матриці
    double determinant; // обв. визначника
    unsigned i, j;
    unsigned b; //вільні коєф
    cout << "n "; cin >> N;
    cout << "m "; cin >> M;
    double ** arr = new double*[N];
    for (i = 0; i < N; i++) {
        arr[i] = new double[M];
        for (j = 0; j < M; j++)
            arr[i][j] = rand() % 10 - 5;
    } //задаємо рандом
    cout << "matrix A:\n";
    for (i = 0; i<N; i++)
    {
        for (j = 0; j<M; j++)
            cout << setw(7) << setprecision(2) << arr[i][j]; //setprecision - скорочення до двух знаків після , 
//setw(7) відстань між знаками
        cout << "\n";
    }
    cout << "TRANSPONIROVANNYA MATRIX: \n"; //транспонована матриця
    double **ar = new double *[N];
    for (i = 0; i < N; i++)
    {
        ar[i] = new double[M];
        for (j = 0; j < M; j++) {
            ar[i][j] = arr[j][i];
        }
    }
    for (int i = 0; i < N; i++) {
        for (int j = 0; j < M; j++) {
            cout << setw(7)<< ar[i][j] << " ";
        }
        cout << endl;
    }

    determinant = det(arr, N, M); //передача з функции в головну програму
    cout << "\ndeterminant: " << determinant << "\n"; //вивед. детермінанта 
    if (determinant) inverse(arr, determinant, N, M); //інакше
    else cout << "obrantoy matrici net";
    getchar();
    system("pause");
    for (i = 0; i<N; i++)
        delete[] arr[i];
    delete[] ar[i];
    delete[] arr;
    return 0;
}
koala написав:

Об'явлення - це з Біблії. Ви, мабуть, проголошення хочете зробити.
На превеликий жаль, без ваших пояснень, що саме ви хочете зробити ("фрагмент знаходження вільних членів" не допомагає), ми не зможемо вам допомогти. Також опишіть, які саме помилки виникають у вас при компіляції цього коду.
Якщо ви гадаєте, що це має бути зрозумілим з коду, то ви ж самі кажете, що цей код не робить, що вам треба - то яким чином з нього можна зрозуміти, що вам треба?
А ще я бачу 2 new і 0 delete. Пам'ять тече.

73

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

Не можу зробити правильно об'явлення в коді. Це фрагмент знаходження вільних членів. Будь ласка допоможіть виправити помилки.

void Gauss(double **X, double **A[N][N + 1], unsigned N, unsigned M) // вільні коєфіцієнти
{
    double **a1 = new double*[N];
    int  r; // массив вільних членів
    double temp;
    int i, j, k; // робочі змінні
    double ** B = new double*[N]; 

                 // копіювання в матрицю А
    for (i = 0; i < N; i++)
    {
        B[i] = A[i][N]; // копіювання вільних членів
        X[i] = 0;
    }

    // прямий хід  
    for (i = 0; i < N; i++)
    {
        if (A[i][i] != 0)
        {
            // обчислення з попередніх рядків
            for (k = (i + 1); k < N; k++)
            {
                r = A[k][i] / A[i][i];
                for (j = i; j < N; j++) A[k][j] -= A[i][j] * r;
                B[k] -= B[i] * r;
            }
        }
        else
        {
            // шукаемо елемент ненульовий
            for (j = (i + 1); j < N; j++)
            {
                if (A[j][i] != 0) break;
            }
            // якщо не знайдено - рішень немає

            if (j == N)
            {
                cout<<"rishennya neisnye\n";
                exit(1);
            }


            else // якщо знайдено - міняємо місяцями
            {
                // матриця
                for (k = i; k < N; k++)
                {
                    temp = A[i][k];
                    A[i][k] = A[j][k];
                    A[j][k] = temp;
                }
                // права частина
                temp = B[i];
                B[i] = B[j];
                B[j] = temp;
                // зниження і на одиницю, щоб цикл повторював перевірку й попав в обчислення рядків з наступних
                i--;
            }
        }
    }

    // зворотній хід
    for (i = N; i >= 0; i--)
    {
        int s = 0;
        for (j = (i + 1); j < N; j++) s += A[i][j] * X[j];
        X[i] = (B[i] - s) / A[i][i];
    }
    // виведення трикутної матриці
    for (i = 0; i < N; i++)
    {
        for (j = 0; j < M; j++)
    cout << A[i][j] << " "<<"\n"; 
        cout<< B[i]<<" "<<"\n";
    }
}

74

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

Написати програму, яка із даного файлу із цілими числами формує два нові. Один із них містить позиції всіх чисел, більших 3, другий – позиції всіх нульових елементів.

75

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

Задача: Файл містить 50 дійсних чисел. Підрахувати, скільки серед них є від‟ємних чисел (вивести на екран). Вивести у інший файл номери позицій, в яких знаходяться від‟ємні числа та їх значення.

Взагалі не розумію другу половину завдання.

// ConsoleApplication21.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
#include "pch.h"
#include <iostream>
#include <ctime>
#include <fstream>
using namespace std;
int main(){
    const int n = 5;
    double mas[100]; int k = 0;
    srand(time(NULL));
    ofstream file;
    file.open("text.txt");
    cout << "vvod 50 chisel \n";
    cout << "vvod el mas: \t";
    for (int i = 0; i < n; i++) {
    cin >> mas[i];
    file << mas[i] << " ";}
     //підрахунок від'ємних чисел
    for (int i = 0; i < n; i++) {
        if (mas[i] < 0) {
            ++k;}}
    cout << "vid'emnih " << k << endl;


   file.close();
   //номера позицій та від'ємні числа з їх значеннями
   int size = 0; //номера позицій
   ofstream f;
   if (size == 0)
       cout << " "
   return 0;
}

76

(1 відповідей, залишених у C#, .NET)

Допоможіть будь-ласка виправити помилки в коді:

using FigureCollections;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace SparseMatrix
{//основна программа
    class ClassName
    {
        static void Main(string[] args)
        {
            Rectangle rect = new Rectangle(5, 4);
            Square square = new Square(5);
            Circle circle = new Circle(5);
 
            Console.WriteLine("\nArrayList");
            ArrayList al = new ArrayList();
            al.Add(circle); al.Add(rect); al.Add(square);
 
            foreach (var x in al) Console.WriteLine(x);
 
            Console.WriteLine("\nArrayList - сортировка"); al.Sort();
            foreach (var x in al) Console.WriteLine(x);
 
            Console.WriteLine("\nList<Figure>");
            List<Figure> fl = new List<Figure>();
            fl.Add(circle);
            fl.Add(rect); fl.Add(square);
 
            foreach (var x in fl) Console.WriteLine(x);
 
            Console.WriteLine("\nList<Figure> - сортировка");
            fl.Sort();
            foreach (var x in fl) Console.WriteLine(x);
 
            Console.WriteLine("\nМатрица");
            Matrix3D<Figure> cube = new Matrix3D<Figure>(3, 3, 3, null);
            cube[0, 0, 0] = rect; cube[1, 1, 1] = square;
            cube[2, 2, 2] = circle;
            Console.WriteLine(cube.ToString());
 
            Console.WriteLine("\nСписок");
            SimpleList<Figure> list = new SimpleList<Figure>();
            list.Add(square); list.Add(rect);
            list.Add(circle);
 
            foreach (var x in list) Console.WriteLine(x);
 
            list.Sort();
            Console.WriteLine("\nСортировка списка");
            foreach (var x in list) Console.WriteLine(x);
 
            Console.WriteLine("\nСтек");
            SimpleStack<Figure> stack = new SimpleStack<Figure>();
            stack.Push(rect); stack.Push(square); stack.Push(circle);
 
            while (stack.Count > 0)
            {
                Figure f = stack.Pop();
                Console.WriteLine(f);
            }
 
            Console.ReadLine();
        }
 
    }
 
 
    //матриця
    namespace SparseMatrix
    {
        public class Matrix<T>
        {
        
            Dictionary<string, T> _matrix = new Dictionary<string, T>();   
            int maxX;
 
                 
            int maxY;
 
            T nullElement;
 
            public Matrix(int px, int py, T nullElementParam)
            {
                this.maxX = px; this.maxY = py;
                this.nullElement = nullElementParam;
            }
 
    
            public T this[int x, int y]
            {
                get
                {
                    CheckBounds(x, y); string key = DictKey(x, y); if (this._matrix.ContainsKey(key))
                    {
                        return this._matrix[key];
                    }
                    else
                    {
                        return this.nullElement;
                    }
                }
                set
                {
                    CheckBounds(x, y); string key = DictKey(x, y); this._matrix.Add(key, value);
                }
            }
    
            void CheckBounds(int x, int y)
            {
                if (x < 0 || x >= this.maxX) throw new Exception("x=" + x + " выходит за границы");
                if (y < 0 || y >= this.maxY) throw new Exception("y=" + y + " выходит за границы");
 
            }
 
            string DictKey(int x, int y)
            {
                return x.ToString() + "_" + y.ToString();
            }
 
    
            public override string ToString()
            {StringBuilder b = new StringBuilder();
 
                for (int j = 0; j < this.maxY; j++)
                {
                    b.Append("[");
                    for (int i = 0; i < this.maxX; i++)
                    {
                        if (i > 0) b.Append("\t");
                        b.Append(this[i, j].ToString());
                    }
                    b.Append("]\n");
                }
 
                return b.ToString();
            }
 
        }
    }
    //однозв'язний список
    namespace FigureCollections
    {
                public class SimpleListItem<T>
        {
                    public T data { get; set; }
            
            public SimpleListItem<T> next { get; set; }
                                    public SimpleListItem(T param)
            {
                this.data = param;
            }
        }
 
    
        public class SimpleList<T> : IEnumerable<T> where T : IComparable
        {
            
            protected SimpleListItem<T> first = null;
 
                    protected SimpleListItem<T> last = null;
 
            
            public int Count
            {
                get { return _count; }
                protected set { _count = value; }
            }
            int _count;       
            public void Add(T element)
            {
                SimpleListItem<T> newItem = new SimpleListItem<T>(element);
                this.Count++;
 
 
                if (last == null)
                {
 
                    this.first = newItem; this.last = newItem;
                }
 
                else
                {
                    this.last.next = newItem;
 
                    this.last = newItem;
                }
            }
 
            
            public SimpleListItem<T> GetItem(int number)
            {
                if ((number < 0) || (number >= this.Count))
                {
 
                    throw new Exception("Выход за границу индекса");
                }
 
                SimpleListItem<T> current = this.first; int i = 0;
 
 
                while (i < number)
                {
 
                    current = current.next;
                    i++;
                }
 
                return current;
            }
 
              
            public T Get(int number)
            {
                return GetItem(number).data;
            }
 
            public IEnumerator<T> GetEnumerator()
            {
                SimpleListItem<T> current = this.first;
 
                while (current != null)
                {
 
                    yield return current.data;
                    current = current.next;
                }
            }
            
            System.Collections.IEnumerator
            System.Collections.IEnumerable.GetEnumerator()
            {
                return GetEnumerator();
            }
  
            public void Sort()
            {
                Sort(0, this.Count - 1);
            }
            private void Sort(int low, int high)
            {
                int i = low; int j = high;
                T x = Get((low + high) / 2); do
                {
                    while (Get(i).CompareTo(x) < 0) ++i;
                    while (Get(j).CompareTo(x) > 0) --j;
                    if (i <= j)
                    {
                        Swap(i, j); i++; j--;
                    }
                } while (i <= j);
 
                if (low < j) Sort(low, j); if (i < high) Sort(i, high);
            }
            private void Swap(int i, int j)
            {
                SimpleListItem<T> ci = GetItem(i);
                SimpleListItem<T> cj = GetItem(j);
                T temp = ci.data;
                ci.data = cj.data; cj.data = temp;
            }
        }
    }
}

http://replace.org.ua/misc.php?action=pun_attachment&amp;item=1963&amp;download=0

77

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

Проблема вирішена! Дякую!

78

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

koala написав:

Розстав6 дужки.

Помилка вирішена, але теперь дублюється кількість невірно уведенних символів, тобто якщо користувач ввів 5 цифр, то в нього 5 раз вилізе помилка.

do {
        
            cout << "mischevist': ";
            cin >> s[n].local;
            for (int i = 0; i < s[n].local.length(); i++)
            {
                if (!(s[n].local[i]>= 'A' &&s[n].local[i]<= 'Z' || s[n].local[i]>= 'a' && s[n].local[i]<= 'z'))
                {
                    cout << "ne virno! povtorit'te vvod\n";
                }
            }

Як вирішити цю проблему, я не знаю

79

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

koala написав:

2. islapha перевіряє лише один символ. Робіть цикл.

по поводу циклу я його зробив, але помилок стало більше:

do {
        while (true)
        {
            cout << "mestnost': ";
            cin >> s[n].local;
            for (int i = 0; i < s[n].local.length(); i++)
            {
                if (!s[i].local >= 'A' &&s[i].local <= 'Z' || s[i].local >= 'a' && s[i].local <= 'z')
                {
                    cout << "ne verno! povtorite vvod\n";
                }
                else break;
            }
            
        }

помилки:
http://replace.org.ua/misc.php?action=pun_attachment&amp;item=1943&amp;download=0

80

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

В мене видає помилку:
Помилка не існує підходящої функції перетворення з “std::string” в “int”
string local;
    int data;
    int count;
    double intensity;
    double speed;
    int temp;
    string direction;
    int afternoon;
    int night;
} s[100];
int add(int n)
{
    HANDLE hOUTPUT = GetStdHandle(STD_OUTPUT_HANDLE);

    SetConsoleTextAttribute(hOUTPUT, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
    char ch;
   
    ch = '\0';
    do {
        while (true)
        {
            string i = 0;
            cout << "місцевість': ";
            cin >> s[n].local;
            if (!isalpha(s[n].local))
            {
                cout << "Не вірно!Введіть ще раз\n";
            }
        }