21

Re: Масив. Модуль різниці має найменше значення

Ну якщо вже на МОН киваєте, то ось

Вчителю  при навчанні теми «Основи алгоритмізації та програмування» пропонується уникати використання штучних навчальних або застарілих середовищ програмування. Усі програми, які розроблятимуть учні, мають відповідати принципам функціонування сучасного програмного забезпечення в середовищі операційної системи з графічним інтерфейсом.
Орієнтовний перелік програмного забезпечення, необхідного для успішного навчання за програмою курсу:
Візуальне середовище програмування Visual Studio, Borland Delphi

Візуальним середовищем тут і не пахне.

22

Re: Масив. Модуль різниці має найменше значення

koala написав:

Ну якщо вже на МОН киваєте, то ось

Вчителю  при навчанні теми «Основи алгоритмізації та програмування» пропонується уникати використання штучних навчальних або застарілих середовищ програмування. Усі програми, які розроблятимуть учні, мають відповідати принципам функціонування сучасного програмного забезпечення в середовищі операційної системи з графічним інтерфейсом.
Орієнтовний перелік програмного забезпечення, необхідного для успішного навчання за програмою курсу:
Візуальне середовище програмування Visual Studio, Borland Delphi

Візуальним середовищем тут і не пахне.

Вони там і самі не знають, Болренд дельфі остання версія 2006 року, далі це вже не Борленд.
upd. І взагі воно ж платне, що візуал студіо, що дельфі.
upd2, хоча я помиляюсь, принаймні у ВС є фрі версія.

Подякували: koala1

23 Востаннє редагувалося Roma_Kononenko (21.01.2015 23:55:47)

Re: Масив. Модуль різниці має найменше значення

Наш методист мені нічого не сказав, коли я повідомив, що вчу дітей с++. Але то старіша версія програми, є новіша 2011 року. І ще дещо: дітям на олімпіадах дається не візуальне програмування, а звичайне. Толку їх вчити візуальне, якщо вони потім на олімпіадні задачки дивляться як на щось космічне

Post's attachments

Програма9-11.doc 645 kb, 546 downloads since 2015-01-21 

24

Re: Масив. Модуль різниці має найменше значення

Доречі, якби ви бачили, які нам листи приходять з Міністерства Освіти, скільки там помилок і всього іншого, то, правильно сказав Chemist-i,"вони там і самі не знають..."

Подякували: Chemist-i, koala2

25

Re: Масив. Модуль різниці має найменше значення

Roma_Kononenko написав:

Доречі, якби ви бачили, які нам листи приходять з Міністерства Освіти, скільки там помилок і всього іншого, то, правильно сказав Chemist-i,"вони там і самі не знають..."

Бо там такі самі люди сидять, з тих самих причин, що із Вашого повідомлення про "хто вміє програмувати в школі не сидить"

26

Re: Масив. Модуль різниці має найменше значення

Сучасні наукові книги пишуть з горою помилок. Минув той радянський час, коли у книзі на 1300 сторінок було 2-3 помилки

27

Re: Масив. Модуль різниці має найменше значення

// mas.cpp : main project file.
 
//#include "stdafx.h" - цей рядок в загальному випадку не потрібен. Створюйте не "консольний проект", а "пустий"
#include <iostream>
#include <cmath> //він тепер так зветься
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Ukrainian");//ефект той самий, +10 до патріотичної карми
    const int size = 5;
    int mas[size];
    //int tmp; не використовується
    //int x = 32000; не робіть так! Якщо int двохбайтовий, то 32767 дійсно є максимальним значенням, але ж у вас він 4-байтовий...
    // Введення даних у масив користувачем
    for (int i = 0; i < size; i++){
        cout << "Введiть " << i << " елемент масиву ";//i англійська замість української. Брудний хак, але що робити
        cin >> mas[i];
    }
    // обробка
    int x = abs( mas[0] - mas[1] );//а ось так вже спрацює, як треба
    
    for (int i = 0; i < size - 1; i++)
    {
        for (int j = i + 1; j < size; j++) /*нащо перевіряти маленькі значення j? abs(mas[2]-mas[3])==abs(mas[3]-mas[2]), економимо перевірки. 
До речі, школярам можна показати обидва варіанти, мовляв, можна і так, і так, якщо треба швидко написати - 
перебираємо все, якщо треба, щоб швидко працювало - думаємо, які випадки можна пропустити*/
        {
//            if (i != j) вже не потрібне
//            {
                if (abs(mas[i] - mas[j]) < x)
                {
                    x = abs(mas[i] - mas[j]);
                }
//            }
        }
    }
    cout << "Найменший модуль різниці двох елементів має значення " << x << endl;
/*    system("pause"); дуже погана практика - задля залишення результату на екрані викликати ліву програму. 
Якщо реально потрібна пауза - можна зробити щось на кшталт cin.geline( NULL, 0 ); 
якщо треба затримувати результати компіляції на екрані - краще відповідним чином налаштувати середовище. 
Тут http://stackoverflow.com/questions/193469/how-to-make-visual-studio-pause-after-executing-a-console-app-in-debug-mode - 
пишуть, що запуск через Ctrl+F5 - без зневажувача - лишає вікно відкритим, перевірте */
    return 0;
}
Подякували: Roma_Kononenko1

28

Re: Масив. Модуль різниці має найменше значення

Якби міг поставити "Дякую" більше — поставив би, але... Тільки за коментарі до коду ВЕЛИКЕ спасибі

29

Re: Масив. Модуль різниці має найменше значення

а от 26 стрічку я не второпав :(

30

Re: Масив. Модуль різниці має найменше значення

Нам достатньо перевірити лише половину можливих різниць - наприклад, всі, в яких j > i (тому що між i-м до j-м елементами така сама різниця, як і між j-м та i-м, в зворотньому порядку). Можна було б взяти і ті, де j < i. От я і беру тільки ці елементи - j починається з i+1, тобто завжди більше за i, а i закінчується на size-1, тобто вже не перевіряємо j=size+1.

Подякували: Roma_Kononenko1