Регистрация не е нужна, освен при създаване на тема в "Задача на седмицата".

Език C#

Език C#

Мнениеот Гост » 19 Сеп 2022, 15:44

Напишете програма, която разменя стойностите на две променливи.
Гост
 

Re: Език C#

Мнениеот Гост » 19 Сеп 2022, 20:10

Напиши ти!
Гост
 

Re: Език C#

Мнениеот ammornil » 19 Сеп 2022, 21:28

Гост написа:Напишете програма, която разменя стойностите на две променливи.

Програмата може да се напише за променливи от числов или булев [tex](bool)[/tex] тип данни. В [tex]C\#[/tex] типа [tex]string[/tex] не може да се променя след иницилиализиране.
Предложените решения не включват контрол на изключенията.

Генералното решение:
Код: Избери целия код
using System;

namespace SwapValuesOfTwoVariables
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //декларира променливите, необходими за операцията
            double a;
            double b;
            double c;
            //приема променливи от потребителя
            Console.Write("Please enter value of variable one: \t");
            a = double.Parse(Console.ReadLine());
            Console.Write("Please enter value of variable two: \t");
            b = double.Parse(Console.ReadLine());

            //извежда стойностите на променливите преди размяната
            Console.WriteLine("Values of variables before the swap are {0} for variable one and {1} for variable two.",a,b);
            //разменя стойностите на двете променливи с помощта на трета, междинна променлива
            c = a;
            a = b;
            b = c;
            //извежда стойностите на променливите след размяната
            Console.WriteLine("Values of variables after the swap are {0} for variable one and {1} for variable two.",a,b);
            Console.ReadKey(false);
        }
    }
}




Решение без да се използва трета променлива :
Скрит текст: покажи
Код: Избери целия код
using System;

namespace SwapValuesOfTwoVariables
{
    internal class Program
    {
        static void Main(string[] args)
        {
            //декларира променливите, необходими за операцията
            double a;
            double b;
            double c;
            //приема променливи от потребителя
            Console.Write("Please enter value of variable one: \t");
            a = double.Parse(Console.ReadLine());
            Console.Write("Please enter value of variable two: \t");
            b = double.Parse(Console.ReadLine());

            //извежда стойностите на променливите преди размяната
            Console.WriteLine("Values of variables before the swap are {0} for variable one and {1} for variable two.",a,b);
            //разменя стойностите на двете променливи с помощта на математически трик
            a = a * b;
            b = a / b;
            a = a / b;
            //извежда стойностите на променливите след размяната
            Console.WriteLine("Values of variables after the swap are {0} for variable one and {1} for variable two.",a,b);
            Console.ReadKey(false);
        }
    }

[tex][/tex]
Прикачени файлове
Screenshot 2022-09-19 203135.png
Screenshot 2022-09-19 203135.png (20.88 KiB) Прегледано 684 пъти
[tex]\color{lightseagreen}\text{''Който никога не е правил грешка, никога не е опитвал нещо ново.''} \\
\hspace{21em}\text{(Алберт Айнщайн)}[/tex]
Аватар
ammornil
Математик
 
Мнения: 3719
Регистриран на: 25 Май 2010, 19:28
Местоположение: Великобритания
Рейтинг: 1751

Re: Език C#

Мнениеот Sup3rlum » 02 Ное 2022, 20:22

ammornil написа:В [tex]C\#[/tex] типа [tex]string[/tex] не може да се променя след иницилиализиране.


Под капака е така - алокации на heap-a ot тип стринг са immutable в .NET, но самия клас System.String (който е и string) e reference class, което значи, че променлива може да се reassign-не след инициализация, просто ще сочи към друга/нова памет.

https://dotnetfiddle.net/u3iZej
Sup3rlum
Фен на форума
 
Мнения: 247
Регистриран на: 19 Фев 2019, 02:08
Рейтинг: 347


Назад към C#, Java



Кой е на линия

Регистрирани потребители: Google [Bot]

Форум за математика(архив)