Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Тема- Обработка массивов Выполнил- студент гр.html

Работа добавлена на сайт samzan.net:


Минобрнауки России

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

«Чувашский государственный университет имени И.Н. Ульянова»

Факультет дизайна и компьютерных технологий

Кафедра компьютерных технологий

КУРСОВОЙ   ПРОЕКТ

Дисциплина: Информатика и программирование

Тема: Обработка массивов

Выполнил:

студент гр. зДиКТ 45-11

                Теплов Д.И.

Научный руководитель:

доцент    Егорова Ю.Н.

Чебоксары  2014

ТЕХНИЧЕСКОЕ ЗАДАНИЕ

на курсовое проектирование

студенту группы зДиКТ-45-11 Теплову Д.И.

1. Тема проекта (работы)

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

2. Срок сдачи студентом законченного проекта (работы)

01.06.2013 г.____________________________________________________________

3. Исходные данные к проекту (работе)

3.1. Сайты дикт.рф, www.chuvsu.ru

3.2. Borland Pascal 7.0, Borland C++

3.3. Операционная система Windows XP

4. Консультанты по проекту (с указанием относящихся к ним разделов проекта)

__Научный руководитель - доцент Егорова Ю.Н.______________________________________

5. Дата выдачи задания

09.12.2013 г.

Руководитель_________________________________________ 

Задание принял к исполнению____________________________

(дата)

______________________________

(подпись студента)

Содержание

Техническое задание…………………………………………………………………

Листинг программ……………………………………………………………………

 

       Список литературы…………………………………………………………………….

1

  2

9

                                                            

                      

                                  Техническое задание

ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ

1. Вычислить сумму отрицательных элементов массива, которые являются полными квадратами и индексы которых есть четные числа.

2. Из двух массивов разной длины сформировать общий массив и вычислить сумму элементов, делящихся без остатка на 3 и имеющих нечетные индексы.

3. Определить сумму элементов целочисленного массива, в записи которых есть ровно 2 одинаковые цифры и расположенных после минимального по модулю значения.

4. Указать длину начального отрезка последовательности элементов массива, для которого отношение встречающихся в нем степеней двойки и чисел Фибоначчи максимально.

СОРТИРОВКА МАССИВОВ

1. Отсортировать массив по возрастанию суммы цифр в записи его элементов

2. Выполнить сортировку массива с помощью стандартной функции быстрой сортировки qsort (сstdlib) (написать для нее функцию сравнения, передаваемую в качестве параметра, и заполнить таблицу строк).

1

Листинг программ

Программа 1:

Задание: Вычислить сумму отрицательных элементов массива, которые являются полными квадратами и индексы которых есть четные числа.

Листинг:

program one;

var a:array [1..10] of integer;

i:integer;

s:integer;

begin

s:=0;

writeln('vvedite massiv');

for i:=1 to 10 do readln(a[i]);

writeln('start');

for i:=1 to 10 do if ((a[i]<0) and ((i mod 2) =0))

and (sqrt(abs(a[i]))-round(sqrt(abs(a[i])))=0) then

s:=s+a[i];

writeln('s=', s);

readln;

end.

2

Программа 2:

Задание: Из двух массивов разной длины сформировать общий массив и вычислить сумму элементов, делящихся без остатка на 3 и имеющих нечетные индексы.

Листинг:

program  two;

var a,b:array [1..100] of integer; s:array [1..200] of integer;

i,j,k,n:integer;

ss:integer;

begin

   k:=0;

   n:=0;

   ss:=0;

   writeln('hello, print N');

   readln(n);

   writeln('input a array');

   for i:=1 to n do readln(a[i]);

   writeln('print N');

   readln(k);

   writeln('enter b array');

   for i:=1 to k do readln(b[i]);

   writeln('connecting//');

   for i:=1 to n  do s[i]:=a[i];

  for i:=1 to (k+n) do begin if i>n then   s[i]:=b[i-n];     end;

   writeln('a : array');

   for i:=1 to n do write (a[i], '  ');

   writeln;

   writeln('b array');

   for i:=1 to k do write (b[i], '  ');

   writeln;

   writeln('s array');

   for k:=1 to (n+k) do write (s[k], '  ');

   writeln('');

   for i:=1 to (n+k) do if ((i mod 2) = 1) and ((s[i] mod 3)=0)

       then ss:=ss +s[i];

   writeln('s=', '  ', ss);

readln;

end.

3

Программа 3:

Задание: Определить сумму элементов целочисленного массива, в записи которых есть ровно 2 одинаковые цифры и расположенных после минимального по модулю значения.  

Листинг:

program three;

{$R-}

var A,B : array[1..100] of word;

temp,nn,i,j,l,k,m, min, imin,t : integer; sum:longint;

tmp : string;

begin

writeln('ishodnyi massiv:');

writeln('vvedite kol-vo elementov');

readln(nn);

for i := 1 to nn do  begin

readln(A[i]);   end;

min:=abs(a[1]);

imin:=1;

for i:=2 to nn do begin if abs(a[i])<abs(min)

                              then begin min:=a[i]; imin:=i; end; end;

writeln('min=', min);

writeln('imin=', imin);

m:=-1;

t:=0;

for i := 1 to nn do  begin

Str(A[i],tmp);

k := 0;

for l := 1 to length(tmp) do begin for j := l+1 to length(tmp) do

 if (tmp[l] = tmp[j]) then  k := k + 1; if k>2 then break;

 end;

if k = 1 then  begin  m := m + 1;

if i>imin then

                              B[m] := A[i];

                                  end;                                             end;

writeln;

writeln('Polychennyi massiv:');

for i:=1 to m do write(b[i], '  ');

sum:=b[1];

for i := 2 to m do sum:=B[i]+sum;

writeln('');

writeln('sum=', sum);

readln;

end.

4

Программа 4:

Задание: Указать длину начального отрезка последовательности элементов массива, для которого отношение встречающихся в нем степеней двойки и чисел Фибоначчи максимально.   

Листинг:

program four;

uses crt;

const nmax=100;

function Step2(n:integer):boolean;

 var k:integer;

 begin

   k:=1;    while k<n do    k:=k*2;

   Step2:=k=n;

   end;

function Fib(n:integer):boolean;

var a,b,c:integer;

begin

if n=1 then Fib:=true

else

begin

 a:=1;  b:=1;  c:=0;

 while c<n do

  begin

   c:=a+b;    a:=b;    b:=c;

  end;

 Fib:=c=n;

end; end;

var a:array[1..nmax] of integer;

   n,i,j,d,k2,kf:integer;

   ot,mx:real;

begin

clrscr;

repeat

writeln('Vvedite razmer massiva ',nmax,' n=');

readln(n);

until n in [1..nmax];

writeln('Vvedite celye polozhitelnye chisla:');

for i:=1 to n do

repeat

 write('a[',i,']=');  read(a[i]);

until a[i]>0;

clrscr;

writeln('Massiv:');

for i:=1 to n do

5

write(a[i],' ');

writeln;

mx:=0;d:=0;

for i:=2 to n do

begin

 k2:=0;

 kf:=0;

 for j:=1 to i do

  begin

   if Step2(a[j]) then inc(k2);

   if Fib(a[j]) then inc(kf);

  end;

 if (kf>0)and(k2/kf>mx) then

  begin

   mx:=k2/kf;

   d:=j;

  end;

end;

if d=0 then writeln('net stepeney ili chisel fibonachi')

else writeln('Max otnoshenie stepenei 2 i chisel fibonachi=',mx:0:1,' na otrezke 1-', d);

readln;

readln;

end.

6

Программа 5:

Задание: Отсортировать массив по возрастанию суммы цифр в записи его элементов

Листинг:

program  five;

uses crt;

const csize=20;

type tarray=array [1..csize] of integer;

function comparenumber(n:integer):integer;

 begin

 comparenumber:=(n mod 10)+(n div 10);

 end;

procedure bubblesort(var arg:tarray);

  var i,j,temp:integer;

 begin  for i:=1 to csize-1 do

   for j:=1 to csize-i do

      if comparenumber(arg[j])>comparenumber(arg[j+1]) then begin

   temp:=arg[j];

 arg[j]:=arg[j+1];

arg[j+1]:=temp;

            end;

        end;

var

a:tarray;

i:integer;

begin

clrscr;

randomize;

for i:=1 to csize do begin

 a[i]:=random(90)+10;

 write(a[i],' ');

  end;

writeln;

bubblesort(a);

for i:=1 to csize do  write(a[i],' ');

readln;

end.

7

Программа 6:

Задание: Выполнить сортировку массива с помощью стандартной функции быстрой сортировки qsort (сstdlib) (написать для нее функцию сравнения, передаваемую в качестве параметра, и заполнить таблицу строк).

Листинг:

#include <iostream>

#include <iterator>

#include <algorithm>

#include <cstdio>  

int Cmp(const void* a, const void* b)

{       return *static_cast<const int*>(a) - *static_cast<const int*>(b); }

  int main() {      

int array[] = {3, 2, 5, 4, 7, 1, 8, 9, 6};      

std::qsort(array, sizeof(array) / sizeof(*array), sizeof(*array), Cmp);      

std::copy(array, array + (sizeof(array) / sizeof(*array)),              

std::ostream_iterator<int>(std::cout, " "));      

return 0;

}

8

Список  литературы

9




1. Тема- ТЕРМИНЫ Задача- приобщить учащихся к работе с терминологической лексикой.html
2. і. Баяндау хат ж~не т~сініктеме оларды~ ~лгілері.html
3. Послание в бутылке Николас СпарксПослание в бутылке OCR SpellCheck- Etriel Послание в
4. Научно-теоретические основы в отношении лиц с ограниченными возможностями
5. меланхоличного Ницше
6. Тема- Управление цветами в программе Photoshop 1 Открываем изображение Islnd girl.html
7. . ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ [3] 1.
8. Выбор вида транспорта для перевозки массовых сыпучих грузов из карьера на промпредприятие
9. Краснобаева-- Кимбаровского-- Сапежко Паховая грыжа у детей возникает в результате -- незар
10. Остроградского. Циркуляция вектора Е
11. внутри жизненной сферы человека при включении в этот процесс элементной системы мышления лежат в осно
12. класів Підготував- Студент ПГФгрупи 4ДХБ Заяць В
13. рынок; рассмотреть важнейшие исторические условия возникновения рынка
14. ТЕМА ПІДТРИМКИ ПРИЙНЯТТЯ РІШЕНЬ НА ЕТАПІ СТРУКТУРНОГО ПРОЕКТУВАННЯ СКЛАДНИХ ТЕХНІЧНИХ ОБ~ЄКТІВ 05
15. Классы неорганических веществ Растворы электролитов Размеры атомов и водородная связь
16. концентрация запасов хранение их и обеспечение бесперебойного и ритмичного снабжения заказов потребителе
17. Тема 9 Государственное регулирование рынка и цен Провалы рынка
18. Клаус Ежишек Сильвестр
19. Функция предпринимателя это дело частного делового человека
20. TEST Время на тестирование ~ 30 минут