|
3 / 2 / 1
Регистрация: 01.02.2019
Сообщений: 108
|
||||||
Функции и их создание01.02.2019, 13:15. Показов 3573. Ответов 66
Метки нет (Все метки)
Добрый день.
Начал изучать Си. Дошёл до темы "Функции". Решил написать простенькую программу для сложения двух чисел. Если пользователь хочет продолжать сложение - нажимает y, не хочет - n. Кликните здесь для просмотра всего текста
Но, к сожалению, данный код не работает. Сложение производится только один раз, и потом постоянно "продолжить... повторите ввод и т.д.". Странно, почему так. Если скопировать тело функции в основную программу, то всё работает как надо. В чём может быть дело? Заранее спасибо за ответы!
0
|
||||||
| 01.02.2019, 13:15 | |
|
Ответы с готовыми решениями:
66
Создание функции, формирующую предложение из аргументов функции, аргументы . Аргументы - переменное число Создать базу данных с(Создание функции БД, Создание процедуры БД, Создание тригера БД) Создание функции внутри другой функции |
|
3 / 2 / 1
Регистрация: 01.02.2019
Сообщений: 108
|
|
| 05.02.2019, 23:54 [ТС] | |
|
8Observer8, но без си не обойтись, например, при программировании микроконтроллеров, написании драйверов и т.д. А так да, наверное, можно и на с# всё писать.
0
|
|
|
296 / 227 / 102
Регистрация: 11.08.2016
Сообщений: 780
|
|
| 06.02.2019, 00:02 | |
|
IchStudiereC, поэтому Вам и стоит определиться для себя, чем же вы хотите заниматься. Если писать ядра, драйвера, программы для МК, то это определённо Си.
0
|
|
| 06.02.2019, 01:26 | |||
|
C# does not depend on C/C++. You can learn them together.
0
|
|||
|
4089 / 2687 / 432
Регистрация: 09.09.2017
Сообщений: 11,949
|
||
| 06.02.2019, 11:15 | ||
|
1
|
||
|
3 / 2 / 1
Регистрация: 01.02.2019
Сообщений: 108
|
|
| 06.02.2019, 19:03 [ТС] | |
|
COKPOWEHEU, ну тогда я продолжаю учить си?
Далее добиваю знание до среднего уровня и начинаю учить с++? А в свободное от этих языков время играюсь с кнопочками и формочками в с#? Что интересно, даже у Шилдта в учебнике по с++ сначала даётся краткое описание с, а потом уже только рассказывается про с++.)
0
|
|
| 06.02.2019, 19:07 | |
|
0
|
|
|
4089 / 2687 / 432
Регистрация: 09.09.2017
Сообщений: 11,949
|
|
| 07.02.2019, 12:50 | |
|
IchStudiereC, зависит от того, чем планируете заниматься. Для системного программирования и встраиваемых систем (микроконтроллеров) достаточно одного Си.
Для движка игры или другой развесистой математики, критичной к скорости лучше взять С++. Для офисно-подобных GUI (где упор идет не на скорость, как в играх, а на разнообразие и функционал) лучше, наверное, С#. Но тут точно сказать не могу, поскольку занимаюсь в основном контроллерами (Си или С++ в стиле Си).
0
|
|
| 07.02.2019, 16:39 | ||
|
It is depend on what kind of applications you want to write. If you want to write simple browser 2D/3D games for browser it is better to take TypeScript/JavaScript and WebGL based libraries: Phaser.js, Pixi.js, Three.js, Babylon.js and so on.
If you want to write your own browser 2D/3D game engine for browser games (or you need 2D/3D graphics on your browser with shader math and linear algebra) it is better to take pure WebGL 1.0/2.0 and TypeScript/JavaScript. If you need 2D/3D graphics with shader math inside your C#/WPF or C#/Winforms non-game applications you can use shader OpenGL 3+ inside C#. I study how to write my own game engines with multiplayer (in C#/TcpSockets and Node.js/JS/TS) using this book with shader OpenGL: C# Game Programming: For Serious Game Creation About the Author
I plan to rewrite my game engine to C++ in the future when it will be necessary. But now it is critical for me to focus on linear algebra, shader math in GLSL, math physics and mutliplayer with sockets. It is difficult to me use C++ and Winsock. Modern C++ is very hard for games. ".NET" has build-in "using System.Net;" module for sockets.
0
|
||
| 07.02.2019, 19:02 | |
|
I will show when C# is better then C++ for computer graphics. For example, you need 2D/3D viewer/constructor for Windows. The most of programmers have Visual Studio with WinForms. You can use WinForms GUI and OpenTK.GLControl for graphics. It is more simple to use C# for this task then C++. You need only .NET if you want to run EXE on user computer.
I made the example. In this example I use standard ColorDialog Control to set a background color and to set a color for a triangle. You can download the project for VS and just run it: EditedTriangle_WinFormsOpenGL31CSharp.zip For running this EXE you need .NET 2.0 and OpenGL 3.1: EditedTrianlge_WinFormsOpenGL31CSharp_EXE.zip
0
|
|
| 07.02.2019, 19:28 | ||
|
I use OpenTK. OpenTK has linear algebra, audio (OpenAL). You can use C# to write your own little game engine for learning computer graphics and father use Unity, Godot and so on. And you can embed a canvas in your WinFroms or WPF application to draw graphics using OpenGL - it is more effective then GDI+. I forgot to show the standard WinForms ColorDialog:
0
|
||
|
4089 / 2687 / 432
Регистрация: 09.09.2017
Сообщений: 11,949
|
|
| 08.02.2019, 09:42 | |
|
0
|
|
| 08.02.2019, 11:50 | ||
|
IchStudiereC, if you want to begin to study computer graphics then this is one of the best (and the biggest one - 1264 pages) book with examples in C# and WPF: Computer Graphics Principles and Practice - 3rd Edition - 2013 - John F. Hughes, Andries van Dam, Morgan McGuire, David F. Sklar, James D. Foley, Steven K. Feiner, Kurt Akeley. Previous edition (1995) was in C and OpenGL.
0
|
||
|
3 / 2 / 1
Регистрация: 01.02.2019
Сообщений: 108
|
|
| 11.02.2019, 22:30 [ТС] | |
|
Спасибо за советы.
Я ещё буду обращаться в будущем с вопросами ![]() А пока у меня на повестке дня всякие сортировки элементов в массивах)
0
|
|
|
3 / 2 / 1
Регистрация: 01.02.2019
Сообщений: 108
|
||||||||||||||||
| 27.02.2019, 12:26 [ТС] | ||||||||||||||||
|
Продолжаем разговор)
Тему массивы прошёл, но с функциями по-прежнему проблемы. Программа самая простая: нахождение мин/макс значения в массиве. Кликните здесь для просмотра всего текста
Решил выделить кусок нахождения этих элементов в функцию: Кликните здесь для просмотра всего текста
И вызываю так:
0
|
||||||||||||||||
|
296 / 227 / 102
Регистрация: 11.08.2016
Сообщений: 780
|
||||||
| 27.02.2019, 12:39 | ||||||
|
IchStudiereC, вы в функцию в качестве аргументов передали копию min и max. Для доступа к переменным(не копиям), необходимо передавать адрес переменных.
Прототип функции должен выглядеть так :
В таком варианте вы не потеряете данные вычисленные а ходе работы функции.
0
|
||||||
|
3 / 2 / 1
Регистрация: 01.02.2019
Сообщений: 108
|
||||||
| 27.02.2019, 12:49 [ТС] | ||||||
|
D3m1an,
Вот так: Кликните здесь для просмотра всего текста
и вызов : min_max(&min, &max); ? Но printf("%d \t %d \t", max, min); - фигня выводится
0
|
||||||
|
296 / 227 / 102
Регистрация: 11.08.2016
Сообщений: 780
|
|||||||||||
| 27.02.2019, 12:55 | |||||||||||
|
IchStudiereC, почти. Возвращает функция только одно значение. В вашем случае можно сделать вовсе без return. Либо сообщать о состоянии вычислений определенным значением.
Когда вы используете указатель внутри Функции, данные сохраняются в переменные вне функции. То есть, min и max в main и так получат значения. Добавлено через 1 минуту Если без return, то используйте прототип вида :
Если без return, то используйте прототип вида :
0
|
|||||||||||
|
3 / 2 / 1
Регистрация: 01.02.2019
Сообщений: 108
|
|
| 27.02.2019, 13:10 [ТС] | |
|
return убрал, сделал void и то же самое(
0
|
|
|
296 / 227 / 102
Регистрация: 11.08.2016
Сообщений: 780
|
||||||||||||||||
| 27.02.2019, 13:26 | ||||||||||||||||
|
IchStudiereC,
Так чуть аккуратнее будет выглядеть ![]()
0
|
||||||||||||||||
| 27.02.2019, 14:32 | ||||||||||||
0
|
||||||||||||
| 27.02.2019, 14:32 | |
|
Помогаю со студенческими работами здесь
40
Создание функции Создание функции Создание функции
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
FSharp: interface of module
DevAlt 16.05.2026
Интерфейс модуля F# позволяет управлять доступностью членов,
содержащихся в реализации модуля. По-умолчанию все члены модуля доступны:
module Foo
let x = 10
let boo () = printfn "boo"
. . .
|
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible". . .
|
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов.
import "math"
func angleClock(hour int, minutes int) float64 {
. . .
|
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo
https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html
и его же старой инструкции по установке Lazarus с gtk2. . .
|
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|