Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.69/35: Рейтинг темы: голосов - 35, средняя оценка - 4.69
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189

Операторы условия, циклы с известным и неизвестным числом повторений

11.10.2012, 21:08. Показов 8719. Ответов 73
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
чтобы не париться с 3 темами закину 3 лабы в 1
порядок: задание - мой вариант(исправить ошибки)

1. С клавиатуры вводятся 4 целых числа a, b, c, d. Найти среди них пару чисел с минимальной по модулю разностью. Операторы цикла в программе не использовать.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <conio.h>
#include <locale>
 
void main()
{
    setlocale(LC_ALL, "RUSSIAN");
    int a,b,c,d,r,l1,l2;
    printf("a= , b= , c= , d= ");
    scanf("%d %d %d %d", &a, &b, &c, &d);
    r = abs(a-b);
    if r>abs(a-c) then {r = abs(a-c); l1 = a; l2 = c};
    if r>abs(a-d) then {r = abs(a-d); l1 = a; l2 = d};
    if r>abs(b-c) then {r = abs(b-c); l1 = b; l2 = c);  
    if r>abs(b-d) then {r = abs(b-d); l1 = b; l2 = d};
    if r>abs(c-d) then {r = abs(c-d); l1 = c; l2 = d};
    printf("Пара чисел с минимальной по модулю разностью: ", l1, l2);
    getch();
}


2. Задан массив А(20). Определить знакопеременную сумму а1 – а2 + а3 – а4 + ….
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
#include <locale>
 
void main()
{
    setlocale(LC_ALL, "RUSSIAN");
    int a[20], s, i;
    s = 0;
    printf("Введите массив элементов a[20]: ");
    for i= 1 to 20 do
    {
        scanf("%d", &a[i]);
        if a[i] mod 2 = 0 then s = s + a[i] else s = s - a[i];
    }
    printf("Знакопеременная сумма элементов массива = ", s);
    getch();
}


3. Среди чисел 1, 1+1/2, 1+1/2+1/3,…найти первое, большее числа n.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
#include <locale>
 
void main()
{
    setlocale(LC_ALL, "RUSSIAN");
    double n, p, s;
    p = 0;
    s = 0;
    printf("n = ");
    scanf("%n", &n);
    while s<n
    {
        p = p + 1;
        s = 0;
        s = s + 1/p;
    }

в 3 незакончено, т.к. вообще не понимаю как реализовать чтобы прибавлялось еще 1+1/2 + 1/3... (ладно бы еще 1+1/2, 1+1/3 так нет же )

п.с. да, еще, попрошу не добавлять от себя всякие iostream, cin... наш препод говорит что все это ересь и нефиг так делать !
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2012, 21:08
Ответы с готовыми решениями:

Циклы с неизвестным числом повторений
Помогите с задачкой пожалуйста y=1+(1+x)+\frac{(1+x{)}^{2}}{2!}+\frac{(1+x{)}^{3}}{3!}+...

Циклы с неизвестным числом повторений
Вычислить значение суммы членов бесконечного ряда с заданной точностью E с использованием оператора цикла с предусловием или с предусловием...

Циклы с известным числом повторений
Требуется написать одну программку. Условие: Даны ДЕЙСТВИТЕЛЬНОЕ число a, НАТУРАЛЬНОЕ n. Вычислить: a(a-n)(a-2n)...(a-n²). Заранее...

73
 Аватар для Vidok
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:40
Студворк — интернет-сервис помощи студентам
Например
C++
1
for(i=1; i<=10;i++){} // i++ это одно и то же что i=i+1. От 1-го до 10 с шагом 1
означает
Delphi
1
for i:=1 to 10 do {делаем что нужно} i:=i+1 {шаг}
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:43  [ТС]
Цитата Сообщение от Vidok Посмотреть сообщение
Например
C++
1
for(i=1; i<=10;i++){} // i++ это одно и то же что i=i+1. От 1-го до 10 с шагом 1
означает
Delphi
1
for i:=1 to 10 do {делаем что нужно} i=i+1 {шаг}
а почему для 10? или это не критично можно вставить 20? короче я так понял на все пофиг, просто вписать до какого и все? а как же тогда делать цикл downto?
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
11.10.2012, 22:44
for (i=0; i<10; i++) //цикл начинается с 0 (i=0) и пока условие (i<10 (аналогия с "to 10" в делфи, правда, здесь он пойдет только до 9, условие такое)) истинно, увеличивает i на 1 (i++ все равно что i=i+1. В делфи цикл фор как бы нерегулируемый, в си наоборот можно задать, например, свой шаг (не i=i+1, а, допустим, i=i+3)). Вообще, Вам нужно хотя бы справочник по синтаксису Си почитать. Без этого никуда.
downto: for (i=10; i>=1; i--)
0
 Аватар для Vidok
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:45
Да все равно что, это же пример!

downto
C++
1
for(i=10;i>=1;i--){}
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:47  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
for (i=0; i<10; i++) //цикл начинается с 0 (i=0) и пока условие (i<10 (аналогия с "to 10" в делфи, правда, здесь он пойдет только до 9, условие такое)) истинно, увеличивает i на 1 (i++ все равно что i=i+1. В делфи цикл фор как бы нерегулируемый, в си наоборот можно задать, например, свой шаг (не i=i+1, а, допустим, i=i+3)). Вообще, Вам нужно хотя бы справочник по синтаксису Си почитать. Без этого никуда.
ну вот давно бы так а как задать i=i+3? а то там i++ о_О
0
 Аватар для Vidok
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:50
Так и задать. Еще можете встретить такие конструкции i+=3, это все равно что i=i+3
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:51  [ТС]
да уж понятно короче что расширенные возможности, но реал как то оно уж очень сложно на первый взгляд кажется
0
 Аватар для Vidok
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:53
После того как освоитесь с синтаксисом С++, то наверное скажете на синтаксис Делфи "Фу". По крайней мере у меня так было
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:53  [ТС]
т.к. я все таки разобрался и с условием и с циклом, вернемся к нашим баранам
2 задача:
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <conio.h>
#include <locale>
 
void main()
{
    setlocale(LC_ALL, "RUSSIAN");
    int a[20], s, i;
    s = 0;
    printf("Введите массив элементов a[20]: ");
    for(i=1; i<=10;i++)
    {
        scanf("%d", &a[i]);
        if (a[i] mod 2 = 0) (s = s + a[i]) else s = s - a[i];
    }
    printf("Знакопеременная сумма элементов массива = ", s);
    getch();
}

поправил условие и цикл, ошибок тьма...
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
11.10.2012, 22:53
Цитата Сообщение от Илья Панов Посмотреть сообщение
а как задать i=i+3
так и задай
можно так
i+=3;
это так называемая скрашенная запись
например
x+=y то же что и x=x+y
x-=y то же что и x=x-y
x*=y то же что и x=x*y
x/=y то же что и x=x/y
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:55  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
так и задай
можно так
i+=3;
это так называемая скрашенная запись
например
x+=y то же что и x=x+y
x-=y то же что и x=x-y
x*=y то же что и x=x*y
x/=y то же что и x=x/y
ни за что бы не догадался (без иронии)
0
 Аватар для Vidok
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:55
Читайте ответы внимательней, я писал что mod это %
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
11.10.2012, 22:55
Илья Панов, я ж написал уже: Операторы условия, циклы с известным и неизвестным числом повторений
Чтоб уж совсем просто:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <conio.h>
#include <locale>
 
int main()
{
    setlocale(LC_ALL, "RUSSIAN");
    int a[20], s=0,i;
    printf("Введите массив элементов a[20]: ");
    for (i=1; i<=5; i=i+1)
    {
        scanf("%d", &a[i]);
        if (i%2==0)  //% = mod
          s=s-a[i]; 
        else 
          s=s+a[i];
    }
    printf("Знакопеременная сумма элементов массива = %d", s);
    getch();
}
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:57  [ТС]
Цитата Сообщение от Vidok Посмотреть сообщение
Читайте ответы внимательней, я писал что mod это %
ок, осталось 2 ошибки:
error C2106: =: левый операнд должен быть левосторонним значением
error C2143: синтаксическая ошибка: отсутствие ";" перед "else"
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
11.10.2012, 22:59
Цитата Сообщение от Илья Панов Посмотреть сообщение
for(i=1; i<=10;i++)
for i=0;i<10;i++)
массивы индексируются с 0
первый элемент a[0] последний a[9]
Цитата Сообщение от Илья Панов Посмотреть сообщение
if (a[i] mod 2 = 0)
C++
1
if(a[i]%2==0)
на самом деле тебе нужно проверять не значения а индекс
C++
1
if(i%2==0)
оператор сравнения == в отличее от паскаля =
а = оператор присвоения в отличие от паскаля :=
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 23:00  [ТС]
Цитата Сообщение от BumerangSP Посмотреть сообщение
Илья Панов, я ж написал уже
проглядел, так значит в С ставиться ; перед else? а в делфи это отделило бы else полностью от условия о_О вот же блин как все по разному)))) осталась 1 ошибка
0
 Аватар для Vidok
38 / 38 / 4
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 23:01
C++
1
if (a[i] mod 2 = 0) (s = s + a[i]) else s = s - a[i];
Здесь не нужны вторые скобки
C++
1
if (a[i] % 2 == 0) s = s + a[i]; else s = s - a[i];
0
2 / 2 / 1
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 23:02  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
for i=0;i<10;i++)
массивы индексируются с 0
первый элемент a[0] последний a[9]

C++
1
if(a[i]%2==0)
на самом деле тебе нужно проверять не значения а индекс
C++
1
if(i%2==0)
оператор сравнения == в отличее от паскаля =
а = оператор присвоения в отличие от паскаля :=
а какая в принципе разница? я почему то привык с 1

э нет, значения... вот задание повторяю:
Задан массив А(20). Определить знакопеременную сумму а1 – а2 + а3 – а4 + ….

Добавлено через 52 секунды
Цитата Сообщение от Vidok Посмотреть сообщение
C++
1
if (a[i] mod 2 = 0) (s = s + a[i]) else s = s - a[i];
Здесь не нужны вторые скобки
C++
1
if (a[i] % 2 == 0) s = s + a[i]; else s = s - a[i];
пусть так, это ничего не меняет
0
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
11.10.2012, 23:03
Цитата Сообщение от Илья Панов Посмотреть сообщение
вот задание повторяю:
мне третий раз код скопировать?
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
11.10.2012, 23:06
Цитата Сообщение от Илья Панов Посмотреть сообщение
э нет, значения... вот задание повторяю:
Задан массив А(20). Определить знакопеременную сумму а1 – а2 + а3 – а4 + ….
ну и какие значения
при i кратном два(четном) + при некратном (нечетном) -
Цитата Сообщение от Илья Панов Посмотреть сообщение
а какая в принципе разница? я почему то привык с 1
большая ты теряешь первый элемент
в паскале массивы тоже начинаются с 0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.10.2012, 23:06

Циклы с известным числом повторений: найти сумму ряда
задача на С++ циклы с известным числом повторений Написать код для задачи: Дано натуральное число n, действительное x. Вычислить: ...

Циклы с известным и не известным числом повторений
Я вот тут на начальном уровне знания паскаля, а такие задачки задали.....:( Напишите программу сложения двух рациональных дробей.Если...

Циклы с неизвестным числом повторений
Вычислить произведение квадратов пяти производных чисел , вводимых с клавиатуры

Циклы с неизвестным числом повторений
Написать программу суммирования рядов при одном и том же значении аргумента и 2-х значениях точности, отличающихся друг от друга более чем...

Циклы с неизвестным числом повторений
сумма членов ряда: \prod = s = 4(1-1/3+...+{(-1)}^{n}*(1/(2n+1))+...) точность E: 10-4


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru