Содержательная постановка задачи

Лабораторная работа №4

по дисциплине: «Языки и технология программирования»

тема: «Одномерные массивы и указатели»

вариант № 1

 

Выполнил: ст. гр. БИ-12-02

Абитев Ермек

Проверил: к.т.н., доцент

Ни А.Г.

«2» апреля 2013 г.

 

 

Алматы, 2013

СОДЕРЖАНИЕ

Введение……………………………………………………………………… 3

1.1 1.2 Задание А…………………………………………………..…………………. Содержательная постановка задачи………………………………………… Словесное описание…………………………………………………………..    
1.3 Блок-схема алгоритма решения задачи…………………...…………………    
1.4 Текст программы………………………………....…………………………...    
1.5 Результат программы…………………………………………………………    
Задание В………………………………………………………………………    
2.1 Содержательная постановка задачи…………………………….…………...    
2.2 2.3 Текст программы…………………………………………………………...… Результат программы…………………………………………………............    
  Заключение…………………………………………………………………….    
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         

ВВЕДЕНИЕ

Си — стандартизированный процедурный язык программирования, разработанный в начале 1970-х годов сотрудниками Bell Labs Кеном Томпсоном и Деннисом Ритчи как развитие языка Би. Си был создан для использования в операционной системе UNIX. С тех пор он был перенесён на многие другие операционные системы и стал одним из самых используемых языков программирования. Си ценят за его эффективность. Он является самым популярным языком для создания системного программного обеспечения. Его также часто используют для создания прикладных программ. Несмотря на то, что Си не разрабатывался для новичков, он активно используется для обучения программированию. В дальнейшем синтаксис языка Си стал основой для многих других языков.

Массив — упорядоченный набор данных, для хранения данных одного типа, идентифицируемых с помощью одного или нескольких индексов. В простейшем случае массив имеет постоянную длину и хранит единицы данных одного и того же типа.

Количество используемых индексов массива может быть различным. Массивы с одним индексом называют одномерными, с двумя — двумерными и т. д. Одномерный массив нестрого соответствует вектору в математике, двумерный — матрице. Чаще всего применяются массивы с одним или двумя индексами, реже — с тремя, ещё большее количество индексов встречается крайне редко.

В данном отчете будут представлено решение одной задачи двумя способами. Будет представлено подробное описание решения в форме словестного описания, блок-схемы, кода программ реализованных на языке Си, и проверка с помощью MS Excel.

 

 

Цель работы: приобретение навыков программирования при решении задач с использованием структур данных типа массив, научиться правильно описывать одномерные массивы, графически описывать алгоритмы обработки одномерных массивов, то есть строить блок-схемы, приобрести навыки программирования с переменными типа указатель.

Задание А

Содержательная постановка задачи

 

Задание А. Составить блок-схему и программу обработки одномерного массива. Элементы массива заполнить, используя функцию генератора случайных чисел.

Пример:

Дан массив размера A[N].Заполнить массив B[N] элементами массива A[N] следующим образом: вначале заполнить элементами с чётными индексами, а затем – с нечётными. Осуществить циклический сдвиг вправо на k позиций, где k- число положительных элементов.

 

1.2 Словестное описание:

1. Начало алгоритма;

2. Генерация массива A[n]

3. Присвоить ch=0

4. Начало цикла i=1

5. Проверка: если A[i] %2== 0, то перейти к пункту 6 иначе к пункту 7

6. Вычислить A[i]=A[i]+A[0], и вычислить

7. Прибавить i=i+1.Проверить если i<n то перейти к пункту 5, иначе конец цикла.

8. Начало цикла i=1

9. Вычислить с=A[n-1]

10. Начало цикла j=n-1

11. Вычислить A[j]=A[j-1]

12. Вычислить j=j-1. Проверить если j>0 то перейти к пункту 11, иначе конец цикла.

13. Вычислить A[0]=c

14. Вычислить i=i+1.Проверить i<ch то перейти к пункту 9 иначе конец цикла.

15. Вывести массив A[n]

16. Конец алгоритма

 

1.3 Блок-схема задачи имеет следующий вид:

 

 

 

1.4 Текст программы:

#include<stdio.h>

#include<math.h>

#include<conio.h>

#include<stdlib.h>

#define n 8

main()

{

clrscr();

int a[n],b[n];

int i,c,ch,j;

printf("**************************************************\n");

printf(" Laboratornaya rabota 4\n");

printf(" Tema:Odnomernie massivi i ukazateli\n");

printf(" varinat n1 ");

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

a[i]=rand()%9-3;

ch=0;

j=0;

printf("\n\n sgeneririvan massiv a[n] \n");

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

printf(" %d",a[i]);

printf("\n________________________________________");

printf("\n\n izm massiv b[n] \n");

j=0;

for(i=0;i<n;i=i+2){

b[j]=a[i];

j++;}

for(i=1;i<n;i=i+2){

b[j]=a[i];

j++; }

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

printf(" %d",b[i]);

printf("\n________________________________________________________\n");

printf("\n\nchislo polozhitelnih elementov \n");

ch=0;

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

if(a[i]>0)

ch++;

printf(" %d",ch);

printf("\n_________________________________________________________\n");

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

{c=b[n-1];

for(j=n-1;j>0;j--)

b[j]=b[j-1];

b[0]=c;}

printf("\n\n sdvig na %d elementov \n",ch);

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

printf(" %d",b[i]);

printf("\n______________________________________________________\n");

getch();

}

 

1.5 Результат решения задания:

 

Проверка при помощи MS Excel:

Задание В