Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 09.02.2020, 17:34   #1
Kakarim
Новичок
Джуниор
 
Регистрация: 09.02.2020
Сообщений: 1
По умолчанию While в с++ ( Абрамян )

Здраствуйте , я новенький в этом форуме , рад присоединиться к вам. У меня такая проблема , я решаю задачи по Книжке Абрамян ( 1000 задач по програмированию) все темы в плот до For включительно все решил и все хорошо понимаю , проблема возникла с While не получается мне его понять, прошу помочь если кто сможет с этими парочка задачами

условии задач по ссылкам внизу
https://uteacher.ru/reshebnik-abramy...abramyana-m-e/

https://uteacher.ru/reshebnik-abramy...abramyana-m-e/

https://uteacher.ru/reshebnik-abramy...abramyana-m-e/
Kakarim вне форума Ответить с цитированием
Старый 10.02.2020, 12:01   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 2,152
По умолчанию

Ну что ж тут непонятного ? От отрезка А откусываем по отрезку В, пока (while) результат не станет отрицательным. Значит, откусили лишнего - добавляем обратно один раз В и печатаем результат. Это по первой задаче, остальные, наверно, похоже - дальше не смотрел.
Нужно взять карандаш и бумагу, выбрать конкретные цифры и шаг за шагом по программе выполнить те действия, которые выполняет комп. Сразу прояснится в голове.
А лучше, по-моему, не лазить по готовым решениям, а поставить задачу - решить - протестировать. Можно сверить и с готовым вариантом, но уже пото'м, после своего решения.

Последний раз редактировалось digitalis; 10.02.2020 в 16:16.
digitalis вне форума Ответить с цитированием
Старый 10.02.2020, 13:32   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,806
По умолчанию

К примеру вот такая задача:
Вводится последовательность чисел до тех пор, пока не ввели 0 или отрицательное число.
Если число положительное, то проверяем четное ли оно, если четное, то считаем сумму четных элементов и считаем количество введенных четных чисел, так же считается общее количество всех чисел и вывод всех введенных чисел на экран после ввода 0. Если первое введенное число меньше или равно 0, то вывод соответствующего сообщения

Код:
#include <iostream>  //поток ввода/вывода

using namespace std;

int main()
{


    int chislo;
    int summ=0,chet=0,count=0;

    string s="";


    // цикл do..while позволяет использовать цикл как минимум один раз, пока условие не достигнуто он будет повторяться 
    
    do
    {
        cout<<"input chislo nomer " <<count+1<< "..."<<endl; //либо std::cout -  вывод сообщения
        cin>>chislo; //ввод числа в переменную

        if (chislo%2==0) //если остаток от деления введенного числа не ноль, то число не четное, иначе четное
        {
            chet++; //если четное, то увеличиваем количество введенных четных элементов на 1
            summ+=chislo; // считаем общую сумму четных элементов

        }


        //дальше проверяем что если число больше 0, то записываем в строковую переменную для вывода на экран

        if (chislo>0)
        {
            s+=to_string(chislo)+" ";
            count++; //увеличиваем общее количество введенных чисел которые больше 0
        }

    }
    while (chislo>0); // Если ввели число, которое меньше или равно 0, то выход из цикла, если число больше 0, то цикл повторяется
    
    if (count<=0) {cout<<"Pervoe chislo menshe chem 0 libo ravno 0!"; return 0;}

    cout<<endl<<"ITOGI"<<endl;
    // endl - переход на новую строку
    // to_string - функция перевода числа в строку, в принципе можно ее в данном случае не использовать, итак выведется в консоль.

    cout<<"chetnix elementov: "<<to_string(chet-1)<<endl; //минус один - потому что 0 это символ конца последовательности и его не считаем за элемент
    cout<<"summa chetnix elementov: "<<to_string(summ)<<endl;
    cout<<"Vvedennie elements: "<<s<<endl;
    cout<<"Vsego elementov >0: "<<to_string(count-1);

    return 0;
}
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решебник М.Э.Абрамян .S9 Помощь студентам 3 04.04.2016 10:09
Абрамян, Решебник .S9 Помощь студентам 11 06.06.2012 17:10
задача по процедурам в си++ (Абрамян) Pomogite_pls Общие вопросы C/C++ 0 12.02.2012 20:49
Решение задач Абрамян ч2 WorksArt Общие вопросы C/C++ 1 26.11.2010 13:41