Об'єктно-Орієнтоване Програмування

Тему створювати, наприклад, так: <[Група 2] Молекулярна фізика>

Re: Об'єктно-Орієнтоване Програмування

Повідомлення Sergiych » 15 травня 2011, 12:42

Спасибо!!!
Група 3. Новак Сегрій
Sergiych
 
Повідомлень: 20
З нами з: 09 листопада 2010, 18:37

Re: Об'єктно-Орієнтоване Програмування

Повідомлення Геннадый » 19 травня 2011, 15:02

Геннадый написав:
Василь написав:
Obi-Van написав:хтось шарить як використовувати блок трай-кеч для помилки формату по аналогії до FormatException в C#?

Код: Виділити все
#include <iostream>
#include <conio.h>
#include <stdlib.h>

using namespace std;
int main(){
 cout<<"Zinchuk!"<<endl;
    cin>>x;
    try {
   
    }
    catch (...){ // если нашло хоть одну ошибку...
          cout<<"Delenue na nol";
    }
    system("PAUSE");
}


DevCPP - кастрат! Заявляю официально! Вобще долино срабатывать… Если узнаю - отпишусь ))
Геннадый
 
Повідомлень: 1
З нами з: 19 травня 2011, 14:57

Re: Об'єктно-Орієнтоване Програмування

Повідомлення aol » 19 травня 2011, 15:10

Василь написав:
Obi-Van написав:хтось шарить як використовувати блок трай-кеч для помилки формату по аналогії до FormatException в C#?

Код: Виділити все
#include <iostream>
#include <conio.h>
#include <stdlib.h>

using namespace std;
int main(){
    int x;
    cin>>x;
    try {
        x=1/x;
    }
    catch (...){ // если нашло хоть одну ошибку...
          cout<<"Delenue na nol";
    }
    system("PAUSE");
}


DevCPP - кастрат! Заявляю официально! Вобще долино срабатывать… Если узнаю - отпишусь ))

включите в параметрах проекта генерацию исключительных ситуаций (exception) , будет работать
И кстати DevCPP - всего лишь IDE для gcc. Можно ругаться (и обоснованно) на кривость и глючность интерфейса, но компилит он так же как в любом юнихе.
aol
 
Повідомлень: 9
З нами з: 19 травня 2011, 15:04

Re: Об'єктно-Орієнтоване Програмування

Повідомлення Василь » 19 травня 2011, 16:59

aol написав:И кстати DevCPP - всего лишь IDE для gcc. Можно ругаться (и обоснованно) на кривость и глючность интерфейса, но компилит он так же как в любом юнихе.


Нифига! Компилит не так само!!!!
Вот подтверждение моим словам:

http://radfiz.org.ua/sos/q/1304179111.txt
P.S. Делалось по примеру, который Мы разбирали с Ефименко на лекции. Считывание fscanf в int с %c

На Borland C++ Builder 6 работает без проблем.
На DevCPP - компилируется, выполняется - и когда доходит до этапа записи масива в файл - тот масив, который заполненый (int mas[n];) - куда то странным образом исчезает. При отладке - ну такие цифры показывает, что аж блевать хочеться.

На линуксе зафигашил в GEANY - а он ругнулся на то что у меня fscanf(f1,"%c",&c); под %c скрывается int. После того как я поменял c с int на char заработало и в DevCPP и в LINUX с стандартным GCC.

DevCPP - кстрат. Задрал уже. Сколько в Borland C++ 3.0 и в Borland C++ Builder 6 и в Visual Studio и в Geany (и т.д.) прог не писал... ну такого,
http://radfiz.org.ua/images/x/devcpp_error.jpg
И на постой, я еще не видал. Задалбывает! Мало того CTRL+SPACE не так как надо работает!!! А эти дИбИльНыЕ отступы... кастрат бльо.
Аватар користувача
Василь
 
Повідомлень: 907
З нами з: 15 жовтня 2010, 02:08

Re: Об'єктно-Орієнтоване Програмування

Повідомлення aol » 19 травня 2011, 18:06

DevCPP - це IDE для MinGW32 - портований gcc для Win32 систем.
У вашому прикладі все просто
Достатньо ініціалізувати змінну c нулем і все буде працювати вірно.
Причина цього явища в тому, що int займає 4 байта, а char 1 байт.
до функції scanf передається вказівник на змінну с і вона змінює відповідно тільки 1 байт (оскільки в форматованному вводі ви вказали, що параметр буде типу char). Три інші байти містять мусор без початкової ініціалізації змінної, с буде містити 1 байт зчитаних даних та 3 байта мусору.
Відповідно порівняння c != константа у вас працює не вірно.
на приватні повідомлення ще немає можливості відповідати, тому відповім публічно: "так"

А всі вильоти та некоректна робота автодоповнення (працює тільки після рекомпіляції) - так недоліки. До речі відступи можна налаштувати :)
aol
 
Повідомлень: 9
З нами з: 19 травня 2011, 15:04

Re: Об'єктно-Орієнтоване Програмування

Повідомлення Василь » 19 травня 2011, 18:53

aol написав:DevCPP - це IDE для MinGW32 - портований gcc для Win32 систем.
У вашому прикладі все просто
Достатньо ініціалізувати змінну c нулем і все буде працювати вірно.
Причина цього явища в тому, що int займає 4 байта, а char 1 байт.
до функції scanf передається вказівник на змінну с і вона змінює відповідно тільки 1 байт (оскільки в форматованному вводі ви вказали, що параметр буде типу char). Три інші байти містять мусор без початкової ініціалізації змінної, с буде містити 1 байт зчитаних даних та 3 байта мусору.
Відповідно порівняння c != константа у вас працює не вірно.
на приватні повідомлення ще немає можливості відповідати, тому відповім публічно: "так"

А всі вильоти та некоректна робота автодоповнення (працює тільки після рекомпіляції) - так недоліки. До речі відступи можна налаштувати :)


Дякую, буду знати!!!!! *RESPECT*
Аватар користувача
Василь
 
Повідомлень: 907
З нами з: 15 жовтня 2010, 02:08

Re: Об'єктно-Орієнтоване Програмування

Повідомлення Василь » 22 травня 2011, 13:18

Зображення
Цікаво, як за допомогою delete можна створити класс.... гг

якщо клас один: new - створює. delete - знищує.
Аватар користувача
Василь
 
Повідомлень: 907
З нами з: 15 жовтня 2010, 02:08

Re: Об'єктно-Орієнтоване Програмування

Повідомлення Ксюха Шаптала » 24 травня 2011, 17:38

Там больше 1 книги не добавляет
Приєднані файли
laba 6.rar
(355.82 Кб) Завантажено 506 разів
Ксюха Шаптала
 
Повідомлень: 12
З нами з: 29 березня 2011, 17:29

Re: Об'єктно-Орієнтоване Програмування

Повідомлення RUS » 25 травня 2011, 21:17

Васек, можешь с програмой подсобить?

Завдання: Визначити структуру для збереження інформації про дату (день, місяць, рік). Написати функцію, яка повертае величину інтервалу часу (у днях) між двома заданими датами.
Група 1. Дибовський Руслан.
Аватар користувача
RUS
 
Повідомлень: 31
З нами з: 23 листопада 2010, 23:01

Re: Об'єктно-Орієнтоване Програмування

Повідомлення Василь » 26 травня 2011, 05:43

RUS написав:Васек, можешь с програмой подсобить?

Завдання: Визначити структуру для збереження інформації про дату (день, місяць, рік). Написати функцію, яка повертае величину інтервалу часу (у днях) між двома заданими датами.


Код: Виділити все
/*
Визначити структуру для збереження інформації про дату (день, місяць, рік).
Написати функцію, яка повертае величину інтервалу часу (у днях) між двома
заданими датами.
*/
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
using namespace std;

struct Tdmy{ // структура
       long d,m,y; //  число місяць рік
       void dmy_pp(){ // дата плюс плюс
            d++;
            switch (m){
                   case 1: if (d>31) {d=1; m++;} break;
                   case 2: if (d> ((y % 4 == 0) ? 29 : 28)  ) {d=1; m++;} break;
                   case 3: if (d>31) {d=1; m++;} break;
                   case 4: if (d>30) {d=1; m++;} break;
                   case 5: if (d>31) {d=1; m++;} break;
                   case 6: if (d>30) {d=1; m++;} break;
                   case 7: if (d>31) {d=1; m++;} break;
                   case 8: if (d>31) {d=1; m++;} break;
                   case 9: if (d>30) {d=1; m++;} break;
                   case 10: if (d>31){d=1; m++;} break;
                   case 11: if (d>30){d=1; m++;} break;
                   case 12: if (d>31){d=1; m=1; y++;} break;
                   // перевіряємо корректність
            }   
       }
       void show_date(){ // функція виводить дату
            cout<<"The date is (d.m.y) : "<<d<<"."<<m<<"."<<y<<endl;           
       }
       void enter_date(){ // функція вводить дату
            cout<<"Enter DATE "<<endl;
            cout<<" D : ";
            cin>>d;
            cout<<" M : ";
            cin>>m; 
            cout<<" Y : ";
            cin>>y;
            cout<<endl;           
                     
       }             
};
int test(Tdmy p1,Tdmy p2){
    // функція приймає дві дати і виводить такі результати:
    // кто раньше: 1 - первый; 2 - второй; 0 - одинаковые
     if (p1.y>p2.y){
        return 2;
     }     
     if (p1.y<p2.y){
        return 1;
     }     
     // если года одинаковые... продолжаем наш тест ))
     // ща месяца
     if (p1.m>p2.m){
        return 2;
     }     
     if (p1.m<p2.m){
        return 1;
     }     
     // теперь дни
     if (p1.d>p2.d){
        return 2;
     }     
     if (p1.d<p2.d){
        return 1;
     }     
     // если ничего не подошло - тогда даты одинаковые     
     return 0;
}
long DateIntervalCount(Tdmy p1,Tdmy p2){
     // функція підраховує кількість днів між датами
    int result=test(p1,p2); // дати рівні
   
    if ( result == 0 ) return 0; // p1=p2
    if ( result == 2 ) { //p1>p2
       // міняємо місцями дати
          Tdmy temp=p1;
          p1=p2;
          p2=temp;   
    }
    long interval=0; // часовий інтервал = 0
     while (test(p1,p2)!=0)
     {// інкрементуємо дату до тих пір, поки дати не зрівняються
        interval++;
        p1.dmy_pp();
     }
           
     return interval;
}
int main(){
    Tdmy var1; // створили структуру
    Tdmy var2; // створили структуру   
   
    do{
       system("cls");
        cout<<"enter 1: \n";
        var1.enter_date(); // ввели дату 1
        cout<<"enter 2: \n";
        var2.enter_date();// ввели дату 2
       
        var1.show_date();    // вивели дату1
        var2.show_date();        //         2
        cout<<" Date interval is "<< DateIntervalCount(var1,var2)<<endl;// вивели інтервал в днях
        cout<<endl<<"Press ESC to exit..."<<endl;
    } while (getch()!=27); // якщо ESC - то виходимо
    system("PAUSE");   
    return 0;
}


Время моей автономной работы : 7072 дней!!! ггг

Взял кусок с Дашиной проги, потом с Марининой, потом еще один метод написал - вот и программа )) проверяй корректность работы ))
Аватар користувача
Василь
 
Повідомлень: 907
З нами з: 15 жовтня 2010, 02:08

Поперед.Далі

Повернутись до Семестр 2

Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 2 гостей