Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 24

Реализовать внешнюю функцию с именем make_тип

06.05.2014, 22:05. Показов 1568. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите переделать задачу под мою или исправить ошибки.
Реализовать внешнюю функцию с именем make_тип( ), где тип - тип
реализуемой структуры. Функция должна получать в качестве аргументов
значения для полей структуры и возвращать структуру требуемого типа. При
передаче ошибочных параметров следует выводить сообщение и заканчивать
работу.
Поле first - целое положительное число, числитель; поле second - целое
положительное число, знаменатель. Реализовать метод ipart () - выделение
целой части дроби first/second. Метод должен проверять неравенство
знаменателя нулю.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
public struct Drob
    {
        public Drob(int first, int second)
        {
            this.first = first;
            this.second = second;
        }
 
        public double iPart(int first, int second)
        {
            double chelaya_chast = 0;
            if (second != 0)
            {
                chelaya_chast = first / second;
                chelaya_chast = Math.Truncate(chelaya_chast);
            }
            else chelaya_chast = -1;
            return chelaya_chast;
        }
 
        int first, second;
    }
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        public bool Init(int first, int second)
        {
            bool flag = true;
            if (first - (int)first != 0) flag = false;
            if (second - (int)second != 0) flag = false;
            return flag;
        }
 
        public void Read(out int first,out int seocnd)
        {
            first = int.Parse(textBox1.Text);
            seocnd = int.Parse(textBox2.Text);
        }
 
        public void Display(double chelaya_chast)
        {
            if (chelaya_chast!==-1)label3.Text = "Chelaya chast: " + chelaya_chast.ToString();
            else label3.text="divisionbyzero";
        }
 
        public Drob make_Drob(int first, int second)
        {
            Drob x = new Drob(first, second);
            return x;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int first = 0, second = 0;
            Drob c;
            double chelaya_chast;
            bool flag = true;
            Read(out first, out second);
            flag = Init(first, second);
            if (flag)
            {
                c = make_Drob(first, second);
                chelaya_chast = c.iPart(first, second);
                Display(chelaya_chast);
            }
            else label3.Text = "Неверный формат ввода!!!!";
        }
    }
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.05.2014, 22:05
Ответы с готовыми решениями:

Реализовать внешнюю функцию с именем make_mun()
Структурой-парой называется структура с двумя полями, которые обычно имеют имена first и second. Требуется реализовать тип данных с помощью...

Реализовать внешнюю функцию с именем make _ тип (), где тип — тип реализуемой структуры
Реализовать внешнюю функцию с именем make _ тип (), где тип — тип реализуемой структуры. Функция должна получать в качестве аргументов...

Реализовать внешнюю сортировку слиянием для n файлов
Здравствуйте. Помогите пожалуйста с написанием программы. Реализовать внешнюю сортировку слиянием для n файлов. Данные предварительно...

6
 Аватар для kuroiryuu
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
06.05.2014, 22:35
В принципе это можно реализовать используя обобщения и интерфейсы:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
 
namespace ConsoleApplication12
{
    public interface ICommon
    {
        void Initialize(int first, int second);
        double iPart();
    }
 
    public struct Drob : ICommon
    {
        int first, second;
 
        //реализуем интерфейс
 
        public void Initialize(int first, int second)
        {
            this.first = first;
            this.second = second;
        }
 
        public double iPart()
        {
            double chelaya_chast = 0;
            chelaya_chast = first / second;
            chelaya_chast = Math.Truncate(chelaya_chast);
 
            return chelaya_chast;
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                var drob = Make<Drob>(3, 1);
                Console.WriteLine(drob.iPart());
            }
            catch(Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
 
        //собственно метод, который создаёт объект, если он реализует интерфейс ICommon
        static T Make<T>(int first, int second) where T : ICommon, new()
        {
            if (first < 0 || second < 0 || second == 0)
            {
                throw new Exception("Invalid input parameters!");
            }
            var result = new T();
            result.Initialize(first, second);
            return result;
        }
    }
}
0
116 / 116 / 70
Регистрация: 10.11.2013
Сообщений: 445
06.05.2014, 23:31
kuroiryuu, а зачем Ipart -- дабл?)) xD На это и целая часть
0
 Аватар для kuroiryuu
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
07.05.2014, 11:20
Цитата Сообщение от Anderok Посмотреть сообщение
kuroiryuu, а зачем Ipart -- дабл?)) xD На это и целая часть
Абсолютно с вами согласен, там нужен int
Но я не исправлял ошибки предыдущего кода... пусть автор сам исправляет.
Я лишь показал идею по реализации.
1
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 24
07.05.2014, 20:39  [ТС]
kuroiryuu, а куда ваш код нужно вставить или заменить в моём коде?????
0
 Аватар для kuroiryuu
328 / 312 / 68
Регистрация: 05.11.2009
Сообщений: 712
07.05.2014, 22:07
hamyak, описать структуру(ы) и интерфейс можно и в отдельном файле
а вызывать можете там, где вам это необходимо. В вашем случаи это метод button1_Click(object sender, EventArgs e);
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        private void button1_Click(object sender, EventArgs e)
        {
            int first = 0, second = 0;
            double chelaya_chast;
            Read(out first, out second);
            try
            {
                var c = make<Drob>(first, second);
                chelaya_chast = c.iPart();
                Display(chelaya_chast);
            }
            catch
            { label3.Text = "Неверный формат ввода!!!!"; }
        }
0
0 / 0 / 0
Регистрация: 04.12.2013
Сообщений: 24
07.05.2014, 23:45  [ТС]
А можете дать целый примерный код, а то у меня ничего не выходит. Может это можно под моё переделать???
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
#include <string>
#include <math.h>
 
using namespace std;
 
struct Gipotenuza
{
    double first; // катет А
    double second; // катет В
 
    void read()
    {
 
        cout << "Введите катет А: ";
        cin >> first;
        cout << "Введите катет В: " ;
        cin >> second;
 
    }
    void display()
    {
        cout << "Гипотенуза равна: "<< sqrt(first*first+second*second);
        cout << endl;
    }
 
   void Init(double a,double b)
    {
 
        first=a;
        second=b;
    }
};
 
int main()
{
    Gipotenuza a;
 
    a.read();
    a.display();
 
    return 0;
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace Structura_Anna
{
    public struct Stepen
    {
        public Stepen(double first, double second)
        {
            first_a = first;
            second_a = second;
        }
 
        public double Power(double first, double second)
        {
            double vozved_step = 0;
            
            {
                
                vozved_step = Math.Pow(first_a,second_a);
            };
            
            return vozved_step;
        }
 
        double first_a; double second_a;
    }
 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        public bool Init(double first_a, double second_a)
        {
            bool flag = true;
            if (first_a - (double)first_a != 0) flag = false;
            if (second_a - (double)second_a != 0) flag = false;
            return flag;
        }
 
        public void Read(out double first, out double seocnd)
        {
            first = double.Parse(textBox1.Text);
            seocnd = double.Parse(textBox2.Text);
        }
 
        public void Display(double vozved_step)
        {
            if (vozved_step != -1)
                label3.Text = " " + vozved_step.ToString();
            else label3.Text=" ";
        }
 
        public Stepen make_Stepen(double first_a, double second_a)
        {
            Stepen x = new Stepen(first_a, second_a);
            return x;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            double first_a = 0; double second_a = 0;
            Stepen c;
            double vozved_step;
            bool flag = true;
            Read(out first_a, out second_a);
            flag = Init(first_a, second_a);
            if (flag)
            {
                c = make_Stepen(first_a, second_a);
                vozved_step = Math.Sqrt(first_a,first_a);
                Display(vozved_step);
            }
            else label3.Text = "Неверный формат ввода!!!!";
        }
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.05.2014, 23:45
Помогаю со студенческими работами здесь

Не могу подключить внешнюю функцию в Form1.h
Добрый день! Помогите plz. Проект Visual C++ 2010 Windows Forms. Программа должна вызывать функции USB управления роботом. Функция...

Разработать и реализовать DLL-модуль с классом, позволяющим запускать внешнюю программу
Добрый день. Есть такая задача: Разработать и реализовать на платформе Microsoft .NET (используя язык программирования C#, VB.NET или...

Перегрузить оператор используя внешнюю функцию инкремент
Суть задания такова нужно перегрузить оператор используя внешнюю функцию Инкремент. Программа не запускается пишет ошибку ( бинарный ++:...

Как передать метод класса во внешнюю функцию?
Необходимо чтобы пользователь выбрал метод класса и передал его в качестве аргумента функции

Использовать внешнюю функцию ToString в наследнике класса TObject
Ребят, помогите плиз с прогой, не могу понять как исправить ошибку (104-106 строки): Extra parameter in call to _fastcall...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru