Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы по информатике.doc
Скачиваний:
29
Добавлен:
12.03.2016
Размер:
326.14 Кб
Скачать
  1. Оператор Do while . Пример задачи.

Рассмотрим цикл с постусловием- оператор do while:

а).Формат оператора имеет вид:

do инструкция

while (выражение);

# include <iostream> // post_uslovie

# include <cmath>

using namespace std;

int main() {

    int n;

  double s,x,a,eps;

  cout<<" vvedite x,eps:";

  cin>>x>>eps;

  s=0;

  n=1;

  do {a=1/pow(x,n);

  s=s+a;

  n+=1;

  }while (fabs(a)<eps);

  cout<<"\n s=" << s<< "\n";

  1. Одномерные массивы. Способы заполнения массива.

одномерный массив

(найти сумму отриц-х элем-в массива):

# include <iostream>

using namespace std;

int main() {

const int n=10;

  int i;

  int a[n]={1,1,1,1,1,1,1,1,1,1};

  float otr=0;

  for (i=0;i<=n-1,a[i]<0;i++){

  otr+=a[i];

  }

  cout <<"\n summa otr-h el-v="<<otr<<"\n"; 

  return 0;

}

одномерный динамический массив

(найти сумму отриц-х элем-в массива-):

# include <iostream>

using namespace std;

int main() {

  int i,n;

  cout<<"vvedite kol-vo elementov:";

  cin>>n;

  int *a=new int[n];

  float otr=0;

  for (i=0;i<=n-1;i++) {

  cout<<"a["<<i<<"]=";

      cin>>a[i];

  }

  for (i=0;i<=n-1,a[i]<0;i++) {

  otr+=a[i];

  }

  cout <<"\n summa otr-h el-v="<<otr<<"\n"; 

  return 0;

}

Способы:

Способ 1. Инициализация при описании массива

Если ничего не засылать в массив перед началом работы с ним, то внешние, статические и автоматические массивы инициализируются для числовых типов нулем и '\0' (null) для символьных типов. Если в статическом, внешнем или автоматическом массиве нам нужны первоначальные значения, отличные от нуля, то язык С/С++ позволяет сделать это следующим образом:

/* дни месяца */

int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};

int main( )

{

int index;

for(index = 0; index<12; index++)

printf("Месяц %d имеет %d дней.\n", index+1,

days[index]);

return 0;

}

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

Способ 2. Инициализация присваиванием

Заполнить одномерный массив элементами, отвечающими следующему соотношению:

a0=1; a1=1; ai=ai-2+ai-1 (i = 2, 3, ..., N-1).

#define N 10

int main()

{

int A[N];

int i;

A[0] = 1;

A[1] = 1;

for (i=2; i<N; i++)

A[i] := A[i-1] + A[i-2];

// далее - обработка

return 0;

}

Способ 3. Инициализация путем ввода с клавиатуры

Этот способ инициализации элементов массива используется в том случае, если между значениями нет заранее известной взаимосвязи (случайные элементы).

#include <stdio.h>

#define N 5

int main()

{

float A[N];

int i;

for (i=0; i<N; i++)

{

printf("Введите %d-й элемент массива: ", i);

scanf("%f", &A[i]);

}

// Обработка массива

return 0;