Циклға байланысты есептер

Есептер
Taskbook-та «Циклы с предварительным условием» 15 беттен бастап. Есепке байланысты сұрақтар мен шешулерін пікір ретінде қосамыз

34 пікір

avatar
Менде 16 беттегі 5 есеп шықпай жатыр. Есепті түсіндім, бірақ шартын енгізу мен алгоритмін жаза алмай жатырмын.
avatar
Мен былай шығардым:

            double x = 1, E = 0.1;
            int f=1, i=0;
            double y = Math.Pow(x,i)/f;
            double s = 0;
            while(y>E)
            {
                s = s + y;
                i++;
                f = f * i;
                y = Math.Pow(x, i) / f;
            }
            Console.WriteLine("sum="+s);
            Console.ReadKey();
avatar
дұрыс па білмеймін бірақ жауабы шығып тұр)
int x =1;
            double E = 0.1; 
            double A =1 ;
            int i = 0;
            int y=1;
            double B;
            do
            {
                i++;
                y = y * i;
                B = (Math.Pow(x, i)) / y;
                if (B <E)
                {
                    break;
                }
                A = A + (Math.Pow(x, i)) / y;
            }
            while (i < 7);//i<ne jazarymdy bilmei,oidan jaza saldym))
            double a = Math.Round(A, 6);
            Console.WriteLine(a);
            Console.ReadKey();
avatar
шартта қосылғыштың мәнін E мен салыстыру керек.
avatar
Рахмет! while (i < 7); — дейтін жерде ол шарт орындалмайынша шексіз жүре беруі керек кой, ол жері қалай болады екен?
avatar
i++ әрбір цикл сайын i-дің мәні бірге артып отыратындықтан, цикл 7 рет орындалады. Егер E — өте кішкене сан болатын болса, есеп қате шығуы мүмкін. Сондықтан шартта қосылғыштың мәнін E санымен салыстыру керек.
avatar
Оны түсіндім). Жазылуын білмедім. Рахмет
avatar
break operatorinda wigip ketedi
avatar
Сәлем бәріне! 16 беттегі 6 есепте ODD функциясын пайдаланыңдар деп тұр. Гуглдан қарап мынадай етіп жазып едім, ODD -ты түсінбей жатыр.
Console.Write("N = ");
            int N = Convert.ToInt32(Console.ReadLine());
            int i = 0;
            double result1 = 0, result2 = 0, result=0;
            while (i < N)
            {   i++;
            if (odd(i))
            {
                result1 = result1 + Math.Pow(i, 3);
            }
            else
            {
                result2 = result2 + Math.Pow(i, 2); 
            }
            result = result1 + result2;
            
            }
            Console.WriteLine("result = " + result);
            Console.ReadKey();


Дәл осыны if-тың ішіне
(i % 2 == 1)
деп жаза салсам, шығып тұр. Odd функциясын қалай пайдаланамыз?
avatar
Odd() функциясы C#-та болмаса керек. Сол соңғы нұсқа дұрыс болар(i%2==1). Есептер паскаль тілінде шығаруға арналған ғой, негізі.
avatar
аа, түсінікті, рахмет!
avatar
17 беттегі 9 есепті тым ұзартып жіберген сияқтымын
int k = 0;            
             Console.Write("i = ");
            int i = Convert.ToInt32(Console.ReadLine());   
            if(i>0)
            { while (i != 0)
                {
                    Console.Write("i = ");
                    i = Convert.ToInt32(Console.ReadLine());
                    if (i > 0)
                    {
                        k = k + 1;
                    }
                 
                }
            Console.WriteLine("Count = " + (k+1));
            Console.ReadKey();
            }
            else
            {
                while (i != 0)
                {
                    Console.Write("i = ");
                    i = Convert.ToInt32(Console.ReadLine());
                    if (i > 0)
                    {
                        k = k + 1;
                    }
                   
                }
                Console.WriteLine("Count = " + k);
                Console.ReadKey();
            }
avatar
Анда 0-саны басылғанға дейінгі барлық он сандардың қосындысын табу керек емес па, да?
avatar
да, да
avatar
Онда k=k+1; деген жерде элементтерінің санын есептеп жатқан сияқтысың
avatar
аа, иә, иә, ол жеріне мән бермеппін. Бірақ алғашқы енгізілген санның оң не теріс екендігін тексеру үшін кодты тым шұбыртып жіберген сияқтымын. Бірінші санды тексерудің басқа амалы болмай ма?
avatar
Ең басында, сосын содан кейінгі else дегі код қажет емес секілді
avatar
Алдыңғы есептің соңғы нұсқасын жазып қояйын. Жауабы дәл шығып тұр.
int k;
            Console.Write("i = ");
           int i = Convert.ToInt32(Console.ReadLine());
           if (i > 0)
               k = i;
           else
               k = 0;          
             while (i != 0)
              {      
                    Console.Write("i = ");
                     i = Convert.ToInt32(Console.ReadLine());
                    if (i > 0)
                     k = k + i;
                }
               
                Console.WriteLine("k = " + k);
                Console.ReadKey();
avatar
Сәлем, достар!
18 беттегі 15 есепті шығара алмай жатырмын. Тек мынадай түрде жаза алдым.
int k=1;
            Console.Write("i = ");
            int i = Convert.ToInt32(Console.ReadLine());
            
            while (i != 0)
            {
                if (i < 5 && i > -5)
                {
                    k = i;
                    Console.WriteLine("k = " + k);                  
                }
                
                Console.Write("i = ");
                i = Convert.ToInt32(Console.ReadLine());                                        
            }
            
            Console.ReadKey();
avatar
Кима, сенде жауабында әрбір енгізген саннан кейін жауабы шыкса, менде сандарды енгізіп болганнан кейін (-5,5) аралығында жататын сандардын қанша екенін біле тұрып, соңғы санды сонша рет қайтарып шығара береді.

int k=1, r=0;
            Console.Write("i = ");
            int i = Convert.ToInt32(Console.ReadLine());
            
            while (i != 0)
            {
                if (i < 5 && i > -5)
                {
                    k = i;
                    r++;

                }
             
                Console.Write("i = ");
                i = Convert.ToInt32(Console.ReadLine());                                        
            }
            for (int j = 0; j < r; j++)
            {
                
                if (i < 5 && i > -5)
                {
                   Console.WriteLine("k = " + k);

                    }
               
            }
            
            Console.ReadKey();

Егер осы есепті шығарған адамдар болса, бізге үлкен көмек болар еді!!!)))
avatar
Мен былай шығардым:
int a = Convert.ToInt32(Console.ReadLine());
            string sandar = "";
            while (a != 0)
            {
                if (a >= -5 && a <= 5)
                {
                    sandar += a + ", ";
                }
                a = Convert.ToInt32(Console.ReadLine());
            }
            sandar.Remove(sandar.Length - 1);
            Console.WriteLine("жауабы: " + sandar);

Басқаша шығарғандар бар ма?
avatar
Рахмет, жауабына!
avatar
оқасы жоқ қо;)
avatar
Задача 8.
Написать программу поиска суммы последовательности чисел, вводимых с клавиатуры, предшествующих первому введенному нулю.
Указание: должен многократно выполняться оператор ввода.
Контрольный пример: 1,2,3,-4,5,-2,0. Результат: 7.
Бұл есептің тек указаниесін гана білмей тұрмын? Қалай бірнеше сан енгізсе болады?
avatar
Былай жасап көруге болады:
int a = Convert.ToInt32(Console.ReadLine());
            while (a != 0)
            {
                a = Convert.ToInt32(Console.ReadLine());
            }
avatar
Былай көрсе де болады.
static void Main(string[] args)
        {
            int a=0, b;
            while (true)
            {
                b = int.Parse(Console.ReadLine());
                if (b == 0)
                    break;
//осы жерге шарт қойса да болады, келесі есептер үшін
//
//           if(b>0)  егер тек оң сандар керек болса
//           if(b<0)  егер тек теріс сандар керек болса.
//           if(b ....)  тағы сол сияқты
                a += b;
            }
            Console.WriteLine("barlik engizilgen sandardin kosindisi = " + a);
            Console.ReadKey();
        }

Көзге жақсы көрінуі үшін //пікірлерді өшіре салсаңыз дұрыс шығар әуелгіде ;)
avatar
Бәріне сәлем!
18 беттегі 4 есепте қателер кетіп жатыр…
Кім-қалай шығарды?
avatar
Өзіңнің кодыңды түсірсең, қатесін айтуға болады
avatar
19 есеп.
Не используя стандартные функции (за исключением модуля), вычислить с точностью eps>0

y = ln(1+x)=x — x^2 / 2+x^3 / 3 — ...+ (-1)^(n-1) * x^n / n + ...(|x| < 1)

Считать, что требуемая точность достигнута, если очередное слагаемое оказалось по модулю меньше, чем, — это и все последующие слагаемые можно уже не учитывать

Источник: itblog.kz/blog/programming/63.html#ixzz2mDED8Ir1

Не используя стандартные функции (за исключение модуля) — Math класындағы Abs()-методынан өзгелерін қолданбай шығару керек. Әйтпесе, Math.Log() арқылы оңай шығара салуға болушы еді.

y =x — x^2 / 2+x^3 / 3 — ...+ (-1)^(n-1) * x^n / n + ...(|x| < 1) формуласында қосылғыштың бірі eps-тан кіші болса, циклды тоқтату керек.
Console.Write(«eps>0, eps engiziniz: „);
double eps = Convert.ToDouble(Console.ReadLine());
Console.Write(“|x|<1, x engiziniz: „);
double x = Convert.ToDouble(Console.ReadLine());;
double y = 0;
double s = 1;//косылгыш
int deg = 1;//косылгыш дарежеси
int k = 0;//while циклынын рети
while (Math.Abs(s) >= eps)
{
y = y + s;
for (int i = 0; i < deg; i++)
{
s = s * x;
}
s = s / deg;
if (k % 2 == 1)
{
s = (-1) * s;
}
deg = deg + 2;
k = k + 1;
}
Console.Write(“y=» + y);
Console.ReadKey();

Источник: itblog.kz/blog/programming/63.html#ixzz2mDDw0pKk
avatar
18-есеп
В массиве из 10 чисел поменять местами первое и десятое, второе и
девятое и т.д. (т.е. перевернуть массив).
Шешуі:

List<int> x = new List<int>();
            
            Console.WriteLine("X massivn engiz:");
            for (int i = 0; i < 10; i++)
            {
                x.Add(Convert.ToInt32(Console.ReadLine()));
            }

            for (int i = 0; i < 5; i++)
            {
                int c = x[i];
                x[i] = x[9 - i];
                x[9 - i] = c;
            }

            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("x[{0}]={1}", i, x[i]);
            }

            Console.ReadKey();

avatar
20-есеп
Сформировать массив из 9 чисел, элементы которого равны
квадратному корню из индекса элемента
Шешуі:
double[] x = new double[9];
            for (int i = 0; i < 9; i++)
            {
                x[i] = Math.Sqrt(i);
            }
            for (int i = 0; i < 9; i++)
            {
                Console.WriteLine("x[{0}]={1}", i, x[i]);
            }
            Console.ReadKey();
Тек қана тіркелген және авторизациядан өткен қолданушылар пікір қалдыра алады.