Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 10.12.2015, 08:24   #1 (permalink)
Ma-sha
Новичок
 
Регистрация: 10.12.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Unhappy Одномерный массив, задание из контрольной

Добрый день! Помогите, пожалуйста с последним заданием в контрольной. Формулировка: "Написать программу формирования одномерного массива М. Полученный массив напечатать. Выполнить обработку и преобразование массива в соответствии со своим вариантом. Напечатать преобразованный массив. Задание по моему варианту: Определить количество элементов массива, больше среднего арифметического всех его элементов. Получить новый массив путем вычитания из всех элементов наименьшего элемента."
Вот, что я нарешала:

CLS
INPUT "Введите количество элементов М ="; М
DIM Z(M)
PRINT "Исходный массив"
FOR i=1 TO M
INPUT Z(i)
NEXT i
FOR i=1 TO M
PRINT Z(i)
NEXT i
PRINT
REM Вычисление ср. арифм. всех элементов массива
C=0 : k=0
FOR i=1 TO M
INPUT Z(i)
IF Z(i)<0 THEN C=C+Z(i) : k=k+1
NEXT i
S=C/k
PRINT "S="; S
REM Нахождение количества элементов массива, больше ср. арифм. всех его элементов
R=0
FOR i=1 TO M
IF Z(i)<S THEN R=R+1
NEXT i
IF R=0 THEN
PRINT "Количество элементов, больших "; S; "равно "; R
REM Нахождение минимального элемента
FOR i=1 TO M
IF Z(i)< Zmin THEN Zmin=Z(i)
NEXT i
PRINT "Zmin=", Zmin
REM Вычитаем из всех элементов наименьший элемент
.................................................. .................................
А дальше не знаю, как. Сомнения вообще в правильности предыдущего. Кто может, помогите. А то сроки поджимают....
Ma-sha вне форума   Ответить с цитированием

Старый 10.12.2015, 08:24
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Дам вам рекомендацию - прочитайте данные топики

Сформировать одномерный массив
Одномерный массив. Паскаль. Код
Задание контрольной
Одномерный массив
Одномерный массив

Старый 10.12.2015, 08:30   #2 (permalink)
Ma-sha
Новичок
 
Регистрация: 10.12.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

да, забыла. На языке Basic/
Ma-sha вне форума   Ответить с цитированием
Старый 10.12.2015, 08:58   #3 (permalink)
grelly
падаван
 
Аватар для grelly
 
Регистрация: 23.01.2013
Сообщений: 731
Сказал(а) спасибо: 305
Поблагодарили 15 раз(а) в 2 сообщениях
Репутация: 6609
По умолчанию

Цитата:
Сообщение от Ma-sha Посмотреть сообщение
IF R=0 THEN
PRINT "Количество элементов, больших "; S; "равно "; R
зачем это условие?
Цитата:
Сообщение от Ma-sha Посмотреть сообщение
REM Нахождение минимального элемента
FOR i=1 TO M
IF Z(i)< Zmin THEN Zmin=Z(i)
NEXT i
PRINT "Zmin=", Zmin
перед циклом сделать Zmin = Z(0)
вычислить Zmin, а дальше в цикле:
Z(i) = Z(i) - Zmin
PRINT Z(i)
если язык такое позволяет)
grelly вне форума   Ответить с цитированием
Старый 10.12.2015, 12:52   #4 (permalink)
Ma-sha
Новичок
 
Регистрация: 10.12.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Спасибо, что откликнулись.

Да, "IF R=0 THEN" - наверное это лишнее. (Просто смотрела подобную задачу, но там условие немного другое). Поэтому надо наверное просто:

REM Нахождение количества элементов массива, больше ср. арифм. всех его элементов
R=0
FOR i=1 TO M
IF Z(i)<S THEN R=R+1
NEXT i
PRINT "Количество элементов, больших "; S; "равно "; R
Ma-sha вне форума   Ответить с цитированием
Старый 10.12.2015, 12:53   #5 (permalink)
Ma-sha
Новичок
 
Регистрация: 10.12.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

И еще проблема с последним условием задачи, когда из всех элементов массива нужно вычесть наименьший элемент. Я не знаю как это написать в программе.
Ma-sha вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 10.12.2015, 13:10   #6 (permalink)
grelly
падаван
 
Аватар для grelly
 
Регистрация: 23.01.2013
Сообщений: 731
Сказал(а) спасибо: 305
Поблагодарили 15 раз(а) в 2 сообщениях
Репутация: 6609
По умолчанию

Цитата:
FOR i=1 TO M
Z(i) = Z(i) - Zmin
PRINT Z(i)
NEXT i
print - если надо выводить
grelly вне форума   Ответить с цитированием
Старый 10.12.2015, 13:17   #7 (permalink)
Ma-sha
Новичок
 
Регистрация: 10.12.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Да, по условию нужно напечатать преобразованный массив.
Спасибо огромное! Вы мне очень помогли!
Ma-sha вне форума   Ответить с цитированием
Старый 10.12.2015, 13:48   #8 (permalink)
Ma-sha
Новичок
 
Регистрация: 10.12.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Прошу прощения за надоедливость, но можно я напишу Вам, grelly, окончательный вариант программы. А Вы посмотрите, может опять где ошибки. ??? Заранее благодарна!

CLS
INPUT "Введите количество элементов М ="; М
DIM Z(M)
PRINT "Исходный массив"
FOR i=1 TO M
INPUT Z(i)
NEXT i
FOR i=1 TO M
PRINT Z(i)
NEXT i
PRINT
REM Вычисление ср. арифм. всех элементов массива
C=0 : k=0
FOR i=1 TO M
INPUT Z(i)
IF Z(i)<0 THEN C=C+Z(i) : k=k+1
NEXT i
S=C/k
REM Нахождение количества элементов массива, больше ср. арифм. всех его элементов
R=0
FOR i=1 TO M
IF Z(i)<S THEN R=R+1
NEXT i
PRINT "Количество элементов массива, больших ср. арифм. всех его элементов равно"; R
REM Нахождение минимального элемента
Zmin=Z(0)
FOR i=1 TO M
IF Z(i)< Zmin THEN Zmin=Z(i)
NEXT i
REM Вычитаем из всех элементов наименьший элемент
PRINT "Преобразованный массив"
FOR i=1 TO M
Z(i)=Z(i) - Zmin
PRINT Z(i)
NEXT i
END
Ma-sha вне форума   Ответить с цитированием
Старый 10.12.2015, 14:52   #9 (permalink)
grelly
падаван
 
Аватар для grelly
 
Регистрация: 23.01.2013
Сообщений: 731
Сказал(а) спасибо: 305
Поблагодарили 15 раз(а) в 2 сообщениях
Репутация: 6609
По умолчанию

Цитата:
REM Вычисление ср. арифм. всех элементов массива
C=0 : k=0
FOR i=1 TO M
INPUT Z(i)
IF Z(i)<0 THEN C=C+Z(i) : k=k+1
NEXT i
S=C/k
проверка что Z(i)<0 не нужна

C=0
FOR i=1 TO M
C=C+Z(i)
NEXT i
S=C/M

если я ничего не путаю
grelly вне форума   Ответить с цитированием
Старый 10.12.2015, 15:13   #10 (permalink)
Ma-sha
Новичок
 
Регистрация: 10.12.2015
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ну да, точно! Среднее арифметическое ВСЕХ же элементов. Спасибо еще раз. Вы меня очень выручили.
Ma-sha вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:57.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.