Пятница, 10.01.2025
Pascal 4 All
[ · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

 

  • Страница 1 из 1
  • 1
Модератор форума: Seqular, Pavel  

Задача на тему Одномерные массивы
Yup_YupДата: Пятница, 19.12.2008, 06:29 | Сообщение # 1
Новичок
Группа: Пользователи
Сообщений: 1
Репутация: 0
Замечания: 0%
Статус: Offline
Люди, темы одномерных массивов не знаю, а у меня контрольная сегодня была. Переписал задание и мне завтра нужно его исправить. Возможно я нарушаю правила, извините, но из тех задач что у вас есть, мне ничего не говорит, ставте бан если надо, закрывайте тему, но прошу сначала помочь, шарю в программировании оч. плохо, со следующей недели сессия, а у меня еще долги по другим предметам есть, в общем войдите в положение.
Вот задание:
Организовать ручное заполнение одномерного массива Х вещественным числом. Найти все элементы массива индексы, которых превышают введенное число М на найденное количество положительных элементов массива. Вывести одномерный массив ДО и ПОСЛЕ изменения, а также введенное число М и количество элементов массива.
Напишите кто-нибудь тело программы от начала до конца, пожалуйста.

Добавлено (18.12.2008, 23:29)
---------------------------------------------
Народ, может кто-нибудь все же удосужится мне помочь а?

 
SeqularДата: Пятница, 19.12.2008, 22:30 | Сообщение # 2
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Quote (Yup_Yup)
Народ, может кто-нибудь все же удосужится мне помочь а?

Не забывай, что живем в разных часовых поясах и сессия в это время не только у тебя.

Перефразируй задание, чтобы было более понятно. Мне вот не совсем ясно, что сделать надо.
1. Вводим массив X.

Code
For i := 1 to N do
Begin
Write('Введите ',i,'-ый элемент массива: ');
Readln(x[i]);
if (x[i] > 0) then Inc(Count);
End;

2. Вводим число M.

Code
Write('Введите число M: ');
Readln(m);

3. Находим количество положительных элеметов:
(см код 1, блок if).

4. "Находим все элементы массива индексы, которых превышают введенное число M на найденное количество положительных элементов массива."
Явно ошибки в пунктуации. Если нужно найти все элементы, индексы которых превышают M на Count (где Count - число положительных элементов массива), то

Code
For i := 1 to N do
Begin
If (i - M = Count) then Writeln('X[',i,']: ',x[i]);
End;

Вот..

Quote (Yup_Yup)
Вывести одномерный массив ДО и ПОСЛЕ изменения

О каком изменении идет речь?

Решение требует пояснения


Поддерживаю также проект сообщество молодых сисадминов
 
kmsДата: Воскресенье, 21.12.2008, 00:52 | Сообщение # 3
Новичок
Группа: Пользователи
Сообщений: 9
Репутация: 0
Замечания: 20%
Статус: Offline
Люди помогите пожалуйста начали проходить массивы задачки ну никак не получается понять

№1
дан массив целых чисел, состоящий из 10 элементов. Заполнить его случайными числами. Найти:
А) сумму положительных элементов, значение которых меньше 10
В) вывести индексы тех элементов, значения которых кратны 3 и 5

№2
Определить, есть ли в данном массиве пара соседних элементов с суммой, равной заданному числу.


я
 
SeqularДата: Воскресенье, 21.12.2008, 10:19 | Сообщение # 4
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Ну выглядит все примерно так:
Code

Randomize;
For i := 1 to 10 do
      Begin
      a[i] := Random(40) - 20;
      Write(a[i]:4);
      End;
Writeln;

Тут мы заполняем его случайными значениями от -20 до 19.
Code
For i := 1 to 10 do
      Begin
      if ((a[i] > 0) and (a[i] < 10)) then sum := sum + a[i];
      if (a[i] mod 15 = 0) then Writeln(i,'-ый элемент кратен 3 и 5!');
      End;
Writeln('Сумма положительных элементов < 10 равна: ',sum);

А что касается #2:

Code
Write('Введите число K: ');
Readln(k);
For i := 2 to 10 do
      Begin
      if (a[i] + a[i-1] = k) then Writeln(i, ' и ', i-1,'-ый элементы дают в сумме К');
      End;

Коды проверь, пишу из головы...


Поддерживаю также проект сообщество молодых сисадминов
 
kmsДата: Понедельник, 22.12.2008, 00:09 | Сообщение # 5
Новичок
Группа: Пользователи
Сообщений: 9
Репутация: 0
Замечания: 20%
Статус: Offline
Задача №2 почему-то не получается

я
 
SeqularДата: Понедельник, 22.12.2008, 00:10 | Сообщение # 6
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
kms, почему?

Поддерживаю также проект сообщество молодых сисадминов
 
SeqularДата: Понедельник, 22.12.2008, 00:14 | Сообщение # 7
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
У меня все отлично получилось.. Тока можно местами поменять i и i-1. Так нагляднее будет. И 'k' заменить на k просто. Еще нагляднее будет. А код работает

Поддерживаю также проект сообщество молодых сисадминов
 
kmsДата: Понедельник, 22.12.2008, 00:15 | Сообщение # 8
Новичок
Группа: Пользователи
Сообщений: 9
Репутация: 0
Замечания: 20%
Статус: Offline
Я правильно записал задачу №2?
Uses crt;
Var
A:array [2..10] of integer;
I,k:integer;
Begin
Clrscr;
Randomize; Write('Введите число K: ');
Readln(k);
For i := 2 to 10 do
Begin
if (a[i] + a[i-1] = k) then
Writeln(‘a[i] + a[i-1] = k’);
End;
Readkey;
End.


я
 
SeqularДата: Понедельник, 22.12.2008, 00:28 | Сообщение # 9
Хранитель
Группа: Администраторы
Сообщений: 859
Репутация: 35
Статус: Offline
Нет. Почему в массив А объявлен со 2-го элемента? Почему не с первого? И, собственно, массив у тебя остается пустым.
Code

Uses CRT;
Var a: Array[1..10] of Integer;
     i: Byte;
     k: integer;
Begin
ClrScr;
Randomize;  
For i := 1 to 10 do  
       Begin  
       a[i] := Random(40) - 20;  
       Write(a[i]:4);  
       End;  
Writeln;  
Write('Введите число K: ');  
Readln(k);  
For i := 2 to 10 do  
       Begin  
       if (a[i] + a[i-1] = k) then Writeln(i-1, ' и ', i,'-ый элементы дают в сумме: ',k);  
       End;
Readkey;
End.

Хотябы такой вариант. Кстати, оформляй свои коды тегом "code"


Поддерживаю также проект сообщество молодых сисадминов
 
kmsДата: Вторник, 23.12.2008, 01:03 | Сообщение # 10
Новичок
Группа: Пользователи
Сообщений: 9
Репутация: 0
Замечания: 20%
Статус: Offline
хорошо спс

Добавлено (22.12.2008, 18:03)
---------------------------------------------
"code"

"
program #1;
const n=17;
Var b:Array[1..n] of Integer;

i,p: integer;
Begin
p:=0;
For i := 1 to n do
Begin
b[i] := -35+Random(121);
if b[i] mod 10=0 then
p:=p+1;
End;
writeln(p);
Readln;
End.
"

что получится в результате выполнения програмы?

у меня получается
"
turbo pascal version 7.1 copyright <c> 1983,97 borland international

2
"


я
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2025
Используются технологии uCoz
javascript:;" rel="nofollow" onclick="loginPopupForm(); return false;