Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Некоторые примеры простейших программ с использованием массивов




Руководствуясь методическими соображениями, рассмотрим в начале примеры решения простейших задач на массивы с использованием, главным образом, традиционных средств языка стандарта FORTRAN 77.

Пример 1.15.1. Дан массив A(m), m£15. Переписать элементы массива в обратном порядке и найти их сумму. Вывести на печать старый массив, новый массив и полученную сумму.

Реализующая программа на языке Фортран имеет вид:

program sample_1_15_1 real(4), dimension(15):: a,an real(4):: s integer(4):: m,i print *,’ Vvedite kolichestvo elementov massiva’ read *,m print *,’ Vvedite massiv a’ read *,(a(i),i=1,m) print 1,(a(i),i=1,m) 1 format(/2x,’Massiv a’/(5g12.4)) s=0. do i=1,m an(i)=a(m-i+1) s=s+an(i) end do print 2,(an(i),i=1,m) 2 format(/2x,’Noviy massiv a’/(5g12.4)) print 3,s 3 format(/2x,’Summa elementov massiva s=’,g12.4) End

Результаты расчета (при m=10):

Massiv a

2.000 4.000 6.000 8.000 10.00

12.00 14.00 16.00 18.00 20.00

 

Noviy massiv a

20.00 18.00 16.00 14.00 12.00

10.00 8.000 6.000 4.000 2.000

 

Summa elementov massiva s= 110.0

 

Пример 1.15.2. Дан массив D(m), m£25. Из массива D переписать в массив T элементы с нечетными номерами. Вывести на печать элементы массива D, массива T, сумму и количество элементов массива T.

Реализующая программа на языке Фортран имеет вид:

program sample_1_15_2 real(4), dimension(25):: d,t(13) real(4):: st=0 integer(4):: m,i,kt=0 print *,’ Vvedite kolichestvo elementov massiva’ read *,m print *,’ Vvedite massiv d’ read *,(d(i),i=1,m) print 1,(d(i),i=1,m) 1 format(/2x,’Massiv d’/(5g12.4)) do i=1,m,2 kt=kt+1 t(kt)=d(i) st=st+t(kt) end do print 2,(t(i),i=1,kt) 2 format(/2x,’Massiv t’/(5g12.4)) print 3,kt,st 3 format(/2x,’Kolichestvo elementov massiva t kt=’,i2,& /2x,’Summa elementov massiva t st=’,g12.4) end

Результаты расчета (при m=11):

Massiv d

3.000 4.000 2.000 1.000 12.00

-4.000 9.000 7.000 2.000 9.000

10.00

 

Massiv t

3.000 2.000 12.00 9.000 2.000

10.00

Kolichestvo elementov massiva t kt= 6

Summa elementov massiva t st= 38.00

 

Пример 1.15.3. Дан массив A(m), m£12. Вывести на печать исходный массив, а также величину и номер его минимального положительного элемента.

Реализующая программа на языке Фортран имеет вид:

program sample_1_15_3 real(4), dimension(12):: a real(4):: apmin integer(4):: m,i,id=0,ipmin print *,’ Vvedite kolichestvo elementov massiva’ read *,m print *,’ Vvedite massiv a’ read *,(a(i),i=1,m) print 1,(a(i),i=1,m) 1 format(/2x,’Massiv a’/(5g12.4)) do i=1,m if(a(i)>0.and.id==0) then id=1 apmin=a(i) ipmin=i end if if(a(i)>0.and.id==1.and.a(i)<apmin) then apmin=a(i) ipmin=i end if end do if(id==0) then print 2 2 format(/2x,’Polozhitelnikh elementov v massive a net’ else print 3,apmin,ipmin 3 format(/2x,’Velechina minimalnogo polozhitelnogo elementa & &massiva apmin=’,g12.4,& /2x,’Nomer minimalnogo polozhitelnogo elementa & &massiva ipmin=’,i2) end if end

Результаты расчета (при m=7):

Massiv a

-1.000 4.000 2.000 11.00 12.00

5.000 3.000

 

Velechina minimalnogo polozhitelnogo elementa massiva apmin= 2.000

Nomer minimalnogo polozhitelnogo elementa massiva ipmin= 3

 

 

Пример 1.15.4. Дан массив B(m), m£15. Все элементы с четными номерами удвоить, а с нечетными – заменить нулями. Вывести на печать исходный и переформированный массив.

Реализующая программа на языке Фортран имеет вид:

program sample_1_15_4 real(4), dimension(15):: b integer(4):: m,i print *,’ Vvedite kolichestvo elementov massiva’ read *,m print *,’ Vvedite massiv b’ read *,(b(i),i=1,m) print 1,(b(i),i=1,m) 1 format(/2x,’Massiv b’,/(5g12.4)) do i=1,m if(i/2*2==i) b(i)=2.*b(i) if(i/2*2/=i) b(i)=0. end do print 2,(b(i),i=1,m) 2 format(/2x,’Pereformirovanniy massiv b’,/(5g12.4)) End

Результаты расчета (при m=8):

Massiv b

2.000 5.000 3.000 1.000 10.00

12.00 7.000 7.000

 

Pereformirovanniy massiv b

0.000 10.00 0.000 2.000 0.000

24.00 0.000 14.00

 

Пример 1.15.5. Дан массив C(m), m£17. Найти произведение всех элементов, предшествующих первой нулевой компоненте, и сумму последующих. Вывести на печать исходный массив и полученные произведение и сумму.

Реализующая программа на языке Фортран имеет вид:

program sample_1_15_5 real(4), dimension(17):: c real(4):: p=1,s=0 integer(4):: m,i,k=0 print *,’ Vvedite kolichestvo elementov massiva’ read *,m print *,’ Vvedite massiv c’ read *,(c(i),i=1,m) print 1,(c(i),i=1,m) 1 format(/2x,’Massiv c’,/(5g12.4)) do i=1,m if(c(i)==0.) then k=i exit end if p=p*c(i) end do if(k==0) then print 2,p 2 format(/2x,’Nulevikh elementov v massive c net’,& /2x,’Proizvedenie elementov massiva c p=’,g12.4) else do i=k+1,m s=s+c(i) end do print 3,p,s 3 format(/2x,’Proizvedenie elementov massiva c & &predshevstvuyuschikh nulevoy komponente’,& /2x,’p=’,g12.4,& /2x,’Summa elementov massiva c sleduyuschikh & &za nulevoy komponentoy’,& /2x,’s=’,g12.4) end if end

Результаты расчета (при m=10):

Massiv c

1.000 4.000 3.000 2.000 0.000

5.000 7.000 0.000 9.000 2.000

 

Proizvedenie elementov massiva c predshevstvuyuschikh nulevoy komponente

p= 24.00

Summa elementov massiva t sleduyuschikh za nulevoy komponentoy

s= 23.00

 

Пример 1.15.6. Дан массив C(m), m£17. Вычислить сумму S элементов с нечетными номерами, удовлетворяющих условию ïCiï<1. Вывести на печать исходный массив и полученную сумму S.

Реализующая программа на языке Фортран имеет вид:

program sample_1_15_6 real(4), dimension(17):: c real(4):: s=0 integer(4):: m,i print *,’ Vvedite kolichestvo elementov massiva’ read *,m print *,’ Vvedite massiv c’ read *,(c(i),i=1,m) print 1,(c(i),i=1,m) 1 format(/2x,’Massiv c’,/(5g12.4)) do i=1,m,2 if(abs(c(i))<1.) s=s+c(i) end do print 2,s 2 format(/2x,’Iskomaya summa s=’,g12.4) end

Результаты расчета (при m=12):

Massiv c

0.4000 0.1000E-01 5.000 4.000 0.8000E-01

-0.3000E-01 3.000 2.000 -0.5000E-01 1.000

3.000 2.000

 

Iskomaya summa s= 0.4300

 

 

Пример 1.15.7. Даны массивы A(m) и B(m), m£12. Сформировать массив C по правилу: C1 = A1, C2 = B1, C3 = A2, C4 = B2 и т.д. Вывести на печать исходные массивы A и B и сформированный массив C.

Реализующая программа на языке Фортран имеет вид:

program sample_1_15_7 real(4), dimension(12):: a,b,c(24) integer(4):: m,i print *,’ Vvedite kolichestvo elementov massiva a i b’ read *,m print *,’ Vvedite massiv a’ read *,(a(i),i=1,m) print *,’ Vvedite massiv b’ read *,(b(i),i=1,m) print 1,(a(i),i=1,m) 1 format(/2x,’Massiv a’,/(5g12.4)) print 2,(b(i),i=1,m) 2 format(/2x,’Massiv b’,/(5g12.4)) do i=1,m c(2*i-1)=a(i) c(2*i)=b(i) end do print 3,(c(i),i=1,2*m) 3 format(/2x,’Massiv c’,/(5g12.4)) end

Результаты расчета (при m=7):

Massiv a

1.000 3.000 5.000 6.000 7.000

8.000 11.00

 

Massiv b

2.000 6.000 4.000 3.000 8.000

9.000 21.00

 

Massiv c

1.000 2.000 3.000 6.000 5.000

4.000 6.000 3.000 7.000 8.000

8.000 9.000 11.00 21.00

 

Пример 1.15.8. Дан массив A(m), m£10. Определить номер NM первого отрицательного элемента и номер NZ первого нулевого элемента. Вывести на печать исходный массив и величины NM и NZ.

Реализующая программа на языке Фортран имеет вид:

program sample_2_16_8 real(4), dimension(10):: a integer(4):: m,i,nm=0,nz=0 print *,’ Vvedite kolichestvo elementov massiva’ read *,m print *,’ Vvedite massiv a’ read *,(a(i),i=1,m) print 1,(a(i),i=1,m) 1 format(/2x,’Massiv a’,/(5g12.4)) do i=1,m if(nm==0.and.a(i)<0.) nm=i if(nz==0.and.a(i)==0.) nz=i end do if(nm==0) then print 2 2 format(/2x,’Otritsatelnikh elementov v massive net’) else print 3,nm 3 format(/2x,’Nomer pervogo otritsatelnogo elementa massiva & &nm=’,i2) end if if(nz==0) then print 4 4 format(/2x,’Nulevikh elementov v massive net’) else print 5,nz 5 format(/2x,’Nomer pervogo nulevogo elementa massiva nz=’,i2) end if end

Результаты расчета (при m=8):

Massiv a

1.000 2.000 0.000 -1.000 2.000

-5.000 0.000 7.000

 

Nomer pervogo otritsatelnogo elementa massiva nm= 4

 

Nomer pervogo nulevogo elementa massiva nz= 3

 

 

Пример 1.15.9. Дан массив C(m), m£30. Расположить его элементы так, чтобы в начале шли положительные, а потом все остальные. Исходный и переформированный массивы вывести на печать.

Реализующая программа на языке Фортран имеет вид:

program sample_1_15_9 real(4), dimension(30):: c,cn integer(4):: m,i,k1=0,k2=0 print *,’ Vvedite kolichestvo elementov massiva’ read *,m print *,’ Vvedite massiv c’ read *,(c(i),i=1,m) print 1,(c(i),i=1,m) 1 format(/2x,’Massiv c’,/(5g12.4)) do i=1,m if(c(i)>0.) then k1=k1+1 cn(k1)=c(i) end if end do if(k1==0) then print 2 2 format(/2x,’Polozhitelnikh elementov v massive c net’) else do i=1,m if(c(i)<=0.) then k2=k2+1 cn(k1+k2)=c(i) end if end do print 3,(cn(i),i=1,m) 3 format(/2x,’Pereformirovanniy massiv c’,/(5g12.4)) end if end

Результаты расчета (при m=11):

Massiv c

-4.000 3.000 5.000 7.000 -3.000

2.000 -8.000 11.00 -0.5000 0.000

1.000

 

Pereformirovanniy massiv c

3.000 5.000 7.000 2.000 11.00

1.000 -4.000 -3.000 -8.000 -0.5000

0.000

 




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 1504; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.029 сек.