Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Структурированная запись алгоритма SumСодержание книги
Поиск на нашем сайте 1. Получить от вызывающего алгоритма исходные данные: массив А и границы суммирования n 1 и n 2. 2. Обнулить S =0. 3.Повторять для i от n 1 до n 2. 3.1 S = S + А[ i ]. 4. Передать результат S в вызывающий алгоритм. Схема алгоритма
Текст прогаммы на языке Си #include <stdio.h> #define N 60 void inmas(double *a,int n) { int i; for (i=0;i<n;i++) scanf("%lf",a++); return 0; } double sum(double *a,int n1,int n2) { int i;double s=0; for (i=n1;i<=n2;i++) s+=*(a+i); return s; } int main() { int i,n,n2; double a[N],otn; printf(" n= "); scanf("%d",&n); printf("\n"); n2=2*n; printf("\nВведите 2*n элементов\n"); inmas(a,n2); otn=sum(a,0,n-1)/sum(a,n,n2-1); printf("Отношение суммы элементов\ первой половины массива к сумме элементов\ второй половины =%6.2f\n",otn); return 0; } Второй вариант Так как язык Си позволяет передавать во вспомогательный алгоритм адрес любого элемента массива и работать с частью массива, начинающейся с указанного элемента, то при реализации программы на Си целесообразно по-другому организовать передачу исходных данных во вспомогательный алгоритм: при первом вызове алгоритма sum передавать в него адрес первого элемента первой половины массива а и размер половины массива n, а при втором вызове - адрес первого элемента второй половины массива & a [ n ] и n. #include <stdio.h> #define N 60 void inmas(double *a,int n) { int i; for (i=0;i<n;i++) scanf("%lf",a++); return 0; } double sum(double *a,int n) { int i;double s=0; for (i=0;i<n;i++) s+=*(a+i); return s; } int main() { int i,n,n2; double a[N],otn; printf(" n= "); scanf("%d",&n); printf("\n"); printf("Введите 2*n элементов\n"); inmas(a,2*n); otn=sum(a,n)/sum(&a[n],n); printf ("Отношение суммы элементов \ первой половины массива к сумме элементов \ второй половины =%6.2f\n",otn); return 0; } Текст программы на языке Паскаль program z_49; uses crt; type mas=array of real; procedure inmas(var a:mas;n:byte); var i:byte; begin for i:=0 to n-1 do readln(a[i]); end;
function sum (a:mas; n1,n2:byte):real; var i:byte; s:real; begin s:=0; for i:=n1 to n2 do s:=s+a[i]; sum:=s; end; var a:mas; n, n2:byte; otn:real; begin writeln (' n= '); readln (n); n2:=2*n; SetLength (a, n2); Writeln (' Введите 2*n элементов '); inmas (a, n2); otn:= sum (a,0,n-1) / sum (a,n, n2-1); write (' Отношение суммы элементов первой '); write (' половины массива к сумме элементов '); writeln (' второй половины = ', otn:6:2); a:=nil; end. Текст программы на языке Фортран real function sum (a,n,n1,n2) implicit none integer, intent(in):: n,n1,n2 real, intent(in):: a(n) real s integer i s=0 do i=n1,n2 s=s+a(i) enddo sum=s end
Program z_49 Implicit none real,allocatable:: a(:) real sum,otn,s1,s2 integer i,n,n2 print *,' n= ' read *,n n2=2*n allocate (a(n2)) print *,' Введите 2*n элементов' read *,a otn = sum(a,n2,1,n)/ sum(a,n2,n+1,n2) print *,' Отношение суммы элементов ', & ' первой половины массива к сумме ',& ' элементов второй половины = ', otn deallocate (a) end Текст программы на языке Python # В качестве массива используется стандартный тип # list (список)
# Ввод массива из n элементов: def Inmas(n): A = [] # Создаем пустой список for i in range(1,n+1): print("Введите {0}-й элемент массива: ". format(i)) A.append(float(input())) return A
# Возвращает значение суммы элементов массива B # с порядковыми номерами от n1 до n2 # (индексы элементов списка от n1-1 до n2-1) def Sum(B, n1, n2): S = 0 for i in range(n1-1, n2): S += B[i] # S = S + B[i] return S
n = 0 while n < 1: print("Введите натуральное n", "(в массиве A будет 2*n элементов): ") n=int(input()) A=Inmas(2*n)
s1 = Sum(A,1,n) s2 = Sum(A,n + 1, 2*n) ot = s1/s2 print("Отношение суммы элементов первой") print("половины массива к сумме элементов") print("второй половины = {0:4.2}".format(ot)) Текст программы в системе Матлаб n=input('Введите n= '); disp('Введите 2*n элементов массива'); A=inmas(2*n); otn =summ(A,1,n)/ summ(A,n+1,2*n); disp('отношение суммы элементов первой') disp('половины массива к сумме элементов') disp(sprintf('второй половины =%4.2f',otn))
function a=inmas(n) for i=1:n disp(sprintf('a(%g)=',i)) a(i)= input(''); end
function s=summ(a,n1,n2) s=0; for i=n1:n2 s=s+a(i); end
|
||
|
Последнее изменение этой страницы: 2021-04-12; просмотров: 165; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.196 (0.006 с.) |