Важная информация
Показано с 1 по 7 из 7

Тема: Массивы

  1. #1  
    Новичок
    Регистрация
    24.11.2010
    Сообщений
    20
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Помогите пожалуйста с задачкой, и если можно с комментарием, заранее спасибо
    Изображения
    • Тип файла: jpg 3-2.JPG (22.5 Кб, Просмотров: 3)
    Ответить с цитированием  
     

  2. #2  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Решение примерно такое:
    Код qbasic:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    N = 10
    [Ссылки могут видеть только зарегистрированные пользователи. ] A(N)
     
    ' Random DIM A value
    FOR I = 1 TO N
    A(I) = [Ссылки могут видеть только зарегистрированные пользователи. ]([Ссылки могут видеть только зарегистрированные пользователи. ] * 100)
    NEXT I
     
    M = 1
    L = 1
    S = A(1)
    FOR I = 2 TO N
    IF M < A(I) THEN
    M = A(I)
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    IF L > A(I) THEN
    L = A(I)
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    S = S + A(I)
    NEXT I
     
    S = S / N
     
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Ishodnyi Massiv:"
    FOR I = 1 TO N
    [Ссылки могут видеть только зарегистрированные пользователи. ] A(I)
    NEXT I
     
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Chislo elementov:", N
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Min:", L
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Max:", M
    [Ссылки могут видеть только зарегистрированные пользователи. ] "S=", S
     
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Uslovie:"
    FOR I = 1 TO N
    IF (A(I) >= L + S / 10) [Ссылки могут видеть только зарегистрированные пользователи. ] (A(I) <= M - S / 10) THEN
    [Ссылки могут видеть только зарегистрированные пользователи. ] [Ссылки могут видеть только зарегистрированные пользователи. ] "A(##)=##"; I; A(I)
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    NEXT I

    Если что-то непонятно - спрашивайте!
    Ответить с цитированием  
     

  3. #3  
    Новичок
    Регистрация
    24.11.2010
    Сообщений
    20
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    qbasic, спасибо еще раз большое, сейчас попытаюсь осмыслить код :) Можно пока небольшой глупый вопросик еще) Надо найти максимальный элемент среди положительных элементов, можно это так написать ?
    Код qbasic:
    ...
    Max = - 10^10
    FOR i = 1 TO n
    IF a(i) > 0 THEN
    IF a(i)  >= max THEN
    max = a(i) ; imax= i 
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    NEXT i
    Ответить с цитированием  
     

  4. #4  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Я думаю можно обойтись без первой строки.
    Код qbasic:
    Max = - 10^10
    Совершенно не нужно присваивать переменной max отрицательное значение, достаточно приравнять ее к 0.

    Строку
    Код qbasic:
    IF a(i)  >= max THEN
    я бы записал так:
    Код qbasic:
    IF a(i)  > max THEN
    Ответить с цитированием  
     

  5. #5  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Можно еще два If-а заменить на один.
    Код qbasic:
    IF (a(i) > 0) [Ссылки могут видеть только зарегистрированные пользователи. ] (a(i)  > max) THEN
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    Ответить с цитированием  
     

  6. #6  
    Гуру Аватар для Konstantin Shcherba
    Регистрация
    08.11.2010
    Сообщений
    1,336
    Сказал(а) спасибо
    26
    Поблагодарили 139 раз(а) в 107 сообщениях
    Записей в блоге
    1
    Или еще сократить :)
    Код qbasic:
    max = 0
    FOR i = 1 TO n
    IF a(i) > max THEN
    max = a(i)
    imax = i
    [Ссылки могут видеть только зарегистрированные пользователи. ] IF
    NEXT i
    Ответить с цитированием  
     

  7. #7  
    Новичок
    Регистрация
    24.11.2010
    Сообщений
    20
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    qbasic, спасибо :)
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Двумерные массивы
    от Sten52 в разделе QBasic
    Ответов: 4
    Последнее сообщение: 03.06.2012, 14:00
  2. Массивы
    от Andrey121121 в разделе Turbo Pascal
    Ответов: 1
    Последнее сообщение: 10.12.2011, 22:24
  3. массивы
    от И.Крапивин в разделе QBasic
    Ответов: 4
    Последнее сообщение: 22.11.2011, 21:32
  4. Двумерные массивы
    от nikita в разделе QBasic
    Ответов: 0
    Последнее сообщение: 04.05.2011, 17:36
  5. Массивы и не только)
    от Виолетта в разделе QBasic
    Ответов: 7
    Последнее сообщение: 02.02.2011, 16:01
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •