Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 23, средняя оценка - 4.83
Илья Панов
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 189
#1

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

11.10.2012, 21:08. Просмотров 2938. Ответов 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... наш препод говорит что все это ересь и нефиг так делать !
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.10.2012, 21:08     Операторы условия, циклы с известным и неизвестным числом повторений
Посмотрите здесь:

C++ Обратиться к файлу с неизвестным именем, но известным расширением (TXT)
Программирование циклов с неизвестным заранее числом повторений C++
C++ Программирование циклов с неизвестным заранее числом повторений
C++ Программирование циклов с неизвестным заранее числом повторений
C++ Операторы повторений for
C++ Циклы с заданным числом повторений
Циклы с неизвестным числом повторений C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:40     Операторы условия, циклы с известным и неизвестным числом повторений #41
Например
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 {шаг}
Илья Панов
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:43  [ТС]     Операторы условия, циклы с известным и неизвестным числом повторений #42
Цитата Сообщение от 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?
BumerangSP
4284 / 1406 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
11.10.2012, 22:44     Операторы условия, циклы с известным и неизвестным числом повторений #43
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--)
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:45     Операторы условия, циклы с известным и неизвестным числом повторений #44
Да все равно что, это же пример!

downto
C++
1
for(i=10;i>=1;i--){}
Илья Панов
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:47  [ТС]     Операторы условия, циклы с известным и неизвестным числом повторений #45
Цитата Сообщение от 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++ о_О
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:50     Операторы условия, циклы с известным и неизвестным числом повторений #46
Так и задать. Еще можете встретить такие конструкции i+=3, это все равно что i=i+3
Илья Панов
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:51  [ТС]     Операторы условия, циклы с известным и неизвестным числом повторений #47
да уж понятно короче что расширенные возможности, но реал как то оно уж очень сложно на первый взгляд кажется
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:53     Операторы условия, циклы с известным и неизвестным числом повторений #48
После того как освоитесь с синтаксисом С++, то наверное скажете на синтаксис Делфи "Фу". По крайней мере у меня так было
Илья Панов
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:53  [ТС]     Операторы условия, циклы с известным и неизвестным числом повторений #49
т.к. я все таки разобрался и с условием и с циклом, вернемся к нашим баранам
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();
}

поправил условие и цикл, ошибок тьма...
ValeryS
Модератор
6511 / 4977 / 460
Регистрация: 14.02.2011
Сообщений: 16,486
11.10.2012, 22:53     Операторы условия, циклы с известным и неизвестным числом повторений #50
Цитата Сообщение от Илья Панов Посмотреть сообщение
а как задать 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
Илья Панов
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:55  [ТС]     Операторы условия, циклы с известным и неизвестным числом повторений #51
Цитата Сообщение от ValeryS Посмотреть сообщение
так и задай
можно так
i+=3;
это так называемая скрашенная запись
например
x+=y то же что и x=x+y
x-=y то же что и x=x-y
x*=y то же что и x=x*y
x/=y то же что и x=x/y
ни за что бы не догадался (без иронии)
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 22:55     Операторы условия, циклы с известным и неизвестным числом повторений #52
Читайте ответы внимательней, я писал что mod это %
BumerangSP
4284 / 1406 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
11.10.2012, 22:55     Операторы условия, циклы с известным и неизвестным числом повторений #53
Илья Панов, я ж написал уже: Операторы условия, циклы с известным и неизвестным числом повторений
Чтоб уж совсем просто:
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();
}
Илья Панов
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 22:57  [ТС]     Операторы условия, циклы с известным и неизвестным числом повторений #54
Цитата Сообщение от Vidok Посмотреть сообщение
Читайте ответы внимательней, я писал что mod это %
ок, осталось 2 ошибки:
error C2106: =: левый операнд должен быть левосторонним значением
error C2143: синтаксическая ошибка: отсутствие ";" перед "else"
ValeryS
Модератор
6511 / 4977 / 460
Регистрация: 14.02.2011
Сообщений: 16,486
11.10.2012, 22:59     Операторы условия, циклы с известным и неизвестным числом повторений #55
Цитата Сообщение от Илья Панов Посмотреть сообщение
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)
оператор сравнения == в отличее от паскаля =
а = оператор присвоения в отличие от паскаля :=
Илья Панов
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 23:00  [ТС]     Операторы условия, циклы с известным и неизвестным числом повторений #56
Цитата Сообщение от BumerangSP Посмотреть сообщение
Илья Панов, я ж написал уже
проглядел, так значит в С ставиться ; перед else? а в делфи это отделило бы else полностью от условия о_О вот же блин как все по разному)))) осталась 1 ошибка
Vidok
37 / 37 / 2
Регистрация: 03.09.2011
Сообщений: 279
11.10.2012, 23:01     Операторы условия, циклы с известным и неизвестным числом повторений #57
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];
Илья Панов
2 / 2 / 0
Регистрация: 22.09.2012
Сообщений: 189
11.10.2012, 23:02  [ТС]     Операторы условия, циклы с известным и неизвестным числом повторений #58
Цитата Сообщение от 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];
пусть так, это ничего не меняет
BumerangSP
4284 / 1406 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
11.10.2012, 23:03     Операторы условия, циклы с известным и неизвестным числом повторений #59
Цитата Сообщение от Илья Панов Посмотреть сообщение
вот задание повторяю:
мне третий раз код скопировать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2012, 23:06     Операторы условия, циклы с известным и неизвестным числом повторений
Еще ссылки по теме:

C++ Циклы с известным числом повторений: найти сумму ряда
C++ Как написать программу с неизвестным числом вводимым с клавиатуры
Циклы с известным числом повторений C++
Ошибка при написании функции с неизвестным числом параметров C++
Написать программу для вычисления цепной дроби (использовать цикл с известным числом повторений) C++

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

Или воспользуйтесь поиском по форуму:
ValeryS
Модератор
6511 / 4977 / 460
Регистрация: 14.02.2011
Сообщений: 16,486
11.10.2012, 23:06     Операторы условия, циклы с известным и неизвестным числом повторений #60
Цитата Сообщение от Илья Панов Посмотреть сообщение
э нет, значения... вот задание повторяю:
Задан массив А(20). Определить знакопеременную сумму а1 – а2 + а3 – а4 + ….
ну и какие значения
при i кратном два(четном) + при некратном (нечетном) -
Цитата Сообщение от Илья Панов Посмотреть сообщение
а какая в принципе разница? я почему то привык с 1
большая ты теряешь первый элемент
в паскале массивы тоже начинаются с 0
Yandex
Объявления
11.10.2012, 23:06     Операторы условия, циклы с известным и неизвестным числом повторений
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru