Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 26 • Страница 1 из 21  2  >
  Версия для печати (полностью) Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 12.06.2003
Откуда: Щёкино
Помогите с домашкой по Информатике, кто шарит в Паскале. Задание такое:"Найти сумму всех чётных элементов массива, кратных заданному числу"

Вот я сделал, но что-то не прёт, работает, но сумму не находит. По-моему она находио кол-во чисел в массиве, но не всегда.
Вот что я сделал:
Program E1;
Const n=6;
Var a:Array [1..n] of integer; i,k,b:integer;
begin Randomize;
writeln('Введите заданное число');
readln(k);
b:=0;
for i:=1 to n do
a[i]:=random(3);
for i:=1 to n do
write(a[i],' ');
if (a[i]mod k=0) and (a[i] mod 2=0) then b:=b+i;
writeln(b);
readln;
end.



Партнер
 

Member
Статус: Не в сети
Регистрация: 03.01.2003
Откуда: Ростов-на-Дону
загвозка в этой строке :D

if (a[i]mod k=0) and (a[i] mod 2=0) then b:=b+i;

попробуй сначала посчитать сумму всех чётных, и вообще просто может быть такое, что числа не кратны 6. Попробуй сам заполни массив какой-нить фигнёй.

_________________
Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!


 

Member
Статус: Не в сети
Регистрация: 17.10.2003
Откуда: Киев
Программист из меня хреновый, но по-моему должно быть так:
diMIDroll писал(а):
Const n=6;
Var a:Array [1..n] of integer; i,k,b:integer;
begin
Randomize;
writeln('Введите заданное число');
readln(k);
b:=0;
for i:=1 to n do
a[i]:=random(9)+1;
for i:=1 to n do
begin
write(a[i],' ');
if (a[i]mod k=0) and (i mod 2=0) then inc(b);
end;
writeln(b);
readln;
end.

Ты уверен, что на четность нужно проверять a[i]? По-моему проверять нужно i (если я не прав, подправь код).


Последний раз редактировалось LS 12.11.2003 20:02, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 05.12.2002
2LS да не, по ходу программист из тебя нормальный, суть понял, тока с i mod 2=0 просчитался. :) Итак, мой вариант

Const n=6;
Var a:Array [1..n] of integer; i,k,b:integer;
begin
Randomize;
writeln('Введите заданное число');
readln(k);
b:=0;
for i:=1 to n do
a[i]:=random(9)+1;
for i:=1 to n do
begin;
write(a[i],' ');
if (a[i]mod k=0) and (a[i] mod 2=0) then
inc(b);
end;
writeln(b);
readln;
end.


 

Member
Статус: Не в сети
Регистрация: 03.01.2003
Откуда: Ростов-на-Дону
LS Ты чо ? Нехрена I проверять ? Это типа счётчик циклов !?

_________________
Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!


 

Member
Статус: Не в сети
Регистрация: 17.10.2003
Откуда: Киев
Цитата:
if (a[i]mod k=0) and (a[i] mod 2=0) then
inc(b);

Блин, а найти то нужно сумму, а не количество :) . Или опять напутал :?
Тогда так:

if (a[i]mod k=0) and (a[i] mod 2=0) then
b:=b+a[i];

Zеrg
Мне показалось, что проверять нужно не значение элемента, а его номер в массиве


 

Member
Статус: Не в сети
Регистрация: 03.01.2003
Откуда: Ростов-на-Дону
b=b+a[i] и всё, что тут париться

_________________
Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!


 

Member
Статус: Не в сети
Регистрация: 05.12.2002
ласт-релиз

Const n=6;
Var a:Array [1..n] of integer; i,k,b:integer;
begin
Randomize;
writeln('Введите заданное число');
readln(k);
b:=0;
for i:=1 to n do
a[i]:=random(9)+1;
for i:=1 to n do
begin;
write(a[i],' ');
if (a[i]mod k=0) and (a[i] mod 2=0) then
b=b+a[i];
end;
writeln(b);
readln;
end.


 

Member
Статус: Не в сети
Регистрация: 17.10.2003
Откуда: Киев
Casey писал(а):
b:=b+a[i];


 

Member
Статус: Не в сети
Регистрация: 03.01.2003
Откуда: Ростов-на-Дону
я вообще не пойму зачем размер массива делать через константу меня всегда это бесило!! ДАЁШЬ ДИНАМИЧЕСКИЕ МАССИВЫ!!!

_________________
Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!


 

Member
Статус: Не в сети
Регистрация: 04.10.2003
Zеrg :beer:
Полностью поддерживаю!!! :D


 

Member
Статус: Не в сети
Регистрация: 03.01.2003
Откуда: Ростов-на-Дону
короче Final Version:

Const n=6;
Var a:Array [1..n] of integer; i,k,b:integer;
begin
Randomize;
writeln('Введите заданное число');
readln(k);
b:=0;
for i:=1 to n do
a[i]:=random(9)+1;
for i:=1 to n do
begin;
write(a[i],' ');
if (a[i]mod k=0) and (a[i] mod 2=0) then
b:=b+a[i];
end;
writeln(b);
readln;
end.

_________________
Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!


 

Member
Статус: Не в сети
Регистрация: 16.07.2003
предлагаю вот такую прогу, препод афигеет наверно

#include "stdafx.h"
#define N 5

int _tmain(int argc, _TCHAR* argv[])
{
int array[N]={1,2,3,6,10};
int s=0;
int k;
scanf("%d",&k);

for(int i=0;i<N;s+=array[i++]%(k%2 ? k*2 : k) ? 0 : array[i-1]);

printf("%d",s);
}


 

Member
Статус: Не в сети
Регистрация: 12.06.2003
Откуда: Щёкино
Ой народ, как вы все здесь запарились. Извеняюсь что долго не появлялся, девахе у кореша диск резал.

Короче перед этой строчкой "if (a[i]mod k=0) and (a[i] mod 2=0) then b:=b+i; " надо было вставить "for i:=1 to n do ".
И саму строчку "if (a[i]mod k=0) and (a[i] mod 2=0) then b:=b+i; " исправить на "if (a[i]mod k=0) and (a[i] mod 2=0) then b:=b+a[i]; ".

Но, но ВСЕМ, ВСЕМ, ВСЕМ ОГРОМНОЕ СМАСИБО ЗА ПОМОЩЬ.


Последний раз редактировалось diMIDroll 12.11.2003 22:36, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 12.06.2003
Откуда: Щёкино
synapse

Так а Енто в чём?
Цитата:
printf
Это Бейсиком пахнет


 

Advanced member
Статус: Не в сети
Регистрация: 13.11.2002
Откуда: msk.ru
Цитата:
printf
Это Бейсиком пахнет
_________________


нифига подобного. си или си++ это.

_________________
Поддержка phpBB на русском языке - теперь официально!


 

А по моему С++. Или я ошибаюсь?

Мне тоже задали создать массив на Паскале, а не могу разабраться в задании 2 мес. уже прошло. Помогите ПЛЗ.

Задание
Создать массив, что содержит номера рядов, упорядоваченных при повышениипарных элементов в массиве К (9:9) целых чисел.

Вот. Т.к. здание на укр. то переводил, по моему все так.


 

Member
Статус: Не в сети
Регистрация: 03.01.2003
Откуда: Ростов-на-Дону
мдя уж...... Перевёл бы ты на нормальнуй русский, именно понятный руссский язык. Повышениипарных это вообще как ?

_________________
Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!


 

Member
Статус: Не в сети
Регистрация: 16.07.2003
Юрий

От С++ здесь только объявление переменных в "for"...К сожалению, не удалось избавиться от второго обращения к массиву, тормозить будет %)


 

Member
Статус: Не в сети
Регистрация: 05.08.2003
printf - это C#, а в C++ - cout


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 26 • Страница 1 из 21  2  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


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

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan