Oraliq nazorat Nº1


Download 166.07 Kb.
bet3/8
Sana02.06.2024
Hajmi166.07 Kb.
#1838692
1   2   3   4   5   6   7   8
Bog'liq
Algoritm Odinaxon 2106

Dasturning C# dagi matni:
using System;
using System.Text;

class Program


{
static void Main(string[] args)
{
string input = "nuqta.bilan.tugaydigan.belgilar.ketma-ketligi.berilgan";
Console.WriteLine("Dastlabki matn: " + input);
string result = RemoveMatchingNeighbors(input);
Console.WriteLine("Qo'shnilari olib tashlangan matn: " + result);
Console.ReadKey();
}

static string RemoveMatchingNeighbors(string input)


{
StringBuilder result = new StringBuilder();
int length = input.Length;

if (length > 0)
{
result.Append(input[0]);
}

for (int i = 1; i < length - 1; i++)
{
if (input[i] != input[i - 1] && input[i] != input[i + 1])
{
result.Append(input[i]);
}
}

if (length > 1)
{
result.Append(input[length - 1]);
}

return result.ToString();


}
}
Natija:


using System;

namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
char[] symbols = { '.', ',', ';', ':', '!', '?', '-', '(', ')', '[', ']', '{', '}', '\'', '\"' };
char[] duplicates = new char[symbols.Length];

// print all symbols


Console.WriteLine("All Symbols:");
foreach (char sym in symbols)
{
Console.Write(sym + " ");
}
Console.WriteLine("\n");

// find duplicate symbols


int index = 0;
for (int i = 0; i < symbols.Length; i++)
{
for (int j = i + 1; j < symbols.Length; j++)
{
if (symbols[i] == symbols[j])
{
duplicates[index] = symbols[i];
index++;
break;
}
}
}

// print duplicate symbols


Console.WriteLine("Duplicate Symbols:");
foreach (char sym in duplicates)
{
if (sym != '\0')
{
Console.Write(sym + " ");
}
}

Console.ReadLine();


}
}
}
Natija:

d) berilgan belgining birinchi va oxirgi holatlari orasidagi barcha belgilarni teskari o'zgartirish;


Algoritmi:
1. Berilgan belgining birinchi holatini tekshirish.
2. Agar belgi katta harf yoki raqam bo'lsa, belgi kichik harf qilinadi.
3. Berilgan belgining oxirgi holatini tekshirish.
4. Agar belgi katta harf yoki raqam bo'lsa, belgi kichik harf qilinadi.
5. Berilgan belgilarning teskari tartibda o'zgartirilishi.
6. Teskari tartibda o'zgartirilgan belgilarni qaytaring.

Dasturning C#dagi matni:
using System;
using System.Linq;

class Program


{
static void Main(string[] args)
{
Console.WriteLine("Iltimos, belgilar ketma-ketligini kiriting:");
string input = Console.ReadLine();
string reversed = ReverseBetweenDots(input);
Console.WriteLine("Birinchi va oxirgi nuqta orasidagi belgilarni teskari o'zgartirilgan:");
Console.WriteLine(reversed);
Console.ReadKey();
}

static string ReverseBetweenDots(string input)


{
int firstDotIndex = input.IndexOf('.');
int lastDotIndex = input.LastIndexOf('.');

if (firstDotIndex == -1 && lastDotIndex == -1 && firstDotIndex == lastDotIndex)
{
return input;
}

string beforeFirstDot = input.Substring(0, firstDotIndex + 1);


string betweenDots = input.Substring(firstDotIndex + 1, lastDotIndex - firstDotIndex - 1);
string afterLastDot = input.Substring(lastDotIndex);

char[] betweenDotsArray = betweenDots.ToCharArray();
Array.Reverse(betweenDotsArray);
string reversedBetweenDots = new string(betweenDotsArray);

return beforeFirstDot + reversedBetweenDots + afterLastDot;


}
}
Natija:
e) uning barcha belgilarini ketma-ketlikning oxiriga qo'shing, ularni teskari tartibda joylashtiring (masalan, 1, 2, 3-ketlikdan 1, 2, 3,3, 2, 1 ni oling).
Algoritmi:
1. Boshlang'ich ketma-ketlikni olib, uni o'z ichiga yozamiz.
2. Keyingi belgini o'qib olamiz va boshlang'ich ketma-ketlikni ichidagi belgiga qo'shib, yangi ketma-ketlikni o'z ichiga yozamiz.
3. Bu jarayonni oxiriga yetib kelguncha keyingi belgini o'qib olamiz va uning yerga yozilgan belgi ketma-ketlikning oxiriga qo'shib, ketma-ketlikning oxiriga esa keyingi belgini o'z ichiga yozamiz.
4. Ketma-ketlik bitta vaqtincha saqlanishi uchun endi uni bir oz ichiga o'zlashtirishimiz kerak.
5. Endi, ketma-ketlik oxiriga yetib kelguncha yozilgan belgilarimizni teskari tartibda joylashtiramiz.
6. Teskari tartibdagi belgilarni qaytarib chiqamiz va tayyor algoritmni topdik.
Dasturning C#dagi matni:

using System;
using System.Linq;

class Program


{
static void Main()
{
int[] belgilar = { 1, 2, 3 };
int[] aksBelgilar = belgilar.Reverse().ToArray();

int[] natija = new int[belgilar.Length * 2];

Array.Copy(belgilar, natija, belgilar.Length);


Array.Copy(aksBelgilar, 0, natija, belgilar.Length, aksBelgilar.Length);

Console.WriteLine("Yangi ketma-ketlik:");


foreach (int belgi in natija)
{
Console.Write(belgi + " ");
}
Console.ReadKey();
}
}

Download 166.07 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling