0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 10
1

Ошибка в программе с массивами

23.12.2015, 13:50. Показов 2235. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите,пожалуйста, исправить программу так,чтобы вместо всего массива мне выводило массив с заданным числом "n". Например,у меня написан массив с 17-ю числами.я ввожу число n=5,тогда мне должен вывести массив из первых пяти чисел,а не все 17. Заранее,спасибо

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
f_id=fopen('Untitled3.dat','rt');
c=str2num(fgetl(f_id));
m=length(c);
disp('введите n');
n=input('n=');
disp('исходн массив c')
fprintf('%6.2f',c);
fprintf('\n')
s=0;
for i=1:n
    if abs(c(i)<1)&(mod(i,2)~=0)
        s=s+c(i);
    end
end
fprintf('Сумма элементов с нечетными номерами и меньше 1: %6.2f\n',s);
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.12.2015, 13:50
Ответы с готовыми решениями:

Ошибка в программе
Здравствуйте! Написал программу по расчету рекуррентного метода наименьших квадратов, но возникает...

Минимизация с ограничениями - ошибка в программе
Добрый день! Бьюсь с MatLabom 3й день.... есть задача function y = MiniZ(x) y = (x(1).^2 +...

Ошибка кода в программе матлаб
я попытался писать в программе матлаб по это формуле a=a0(x,y)e^j*\varphi (x,y)и...

Ошибка в программе с использованием массивов
Доброго времени. Совсем не давно пользуюсь матлабом. Столкнулся с такой проблемой: задаю массив...

5
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
24.12.2015, 07:58 2
вместо строк 6,7
вставь след. строку после for (10строка)

Matlab M
1
fprintf('%6.2f\n',c(i));
1
0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 10
24.12.2015, 15:04  [ТС] 3
Добавлено через 35 секунд
Цитата Сообщение от SSC Посмотреть сообщение
вместо строк 6,7
вставь след. строку после for (10строка)

Matlab M
1
fprintf('%6.2f\n',c(i));
Спасибо,я с этим справился))вот:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
f_id=fopen('Untitled3.dat','rt');
c=str2num(fgetl(f_id));
m=length(c);
disp('введите n');
n=input('n=');
disp('исходн массив c')
k=[c(1:n)];
fprintf('%6.2f',k);
fprintf('\n');
s=0;
for i=1:n
    if abs(c(i)<1)&(mod(i,2)~=0)
        s=s+c(i);
    end
end
fprintf('Сумма элементов с нечетными номерами и меньше 1: %6.2f\n',s);
но у меня появилась новая проблема.Вот задание: Дан массив C(m), https://www.cyberforum.ru/cgi-bin/latex.cgi?m\leq 17. Вычислить сумму S элементов с нечетными номерами, удовлетворяющих условию https://www.cyberforum.ru/cgi-bin/latex.cgi?\left|Ci\right|<1. Вывести на печать исходный массив и полученную сумму S.
Поэтому условию https://www.cyberforum.ru/cgi-bin/latex.cgi?\left|Ci\right|<1 видно,что сумма элементов массива должна быть положительной,но у меня она получается отрицательной,как это исправить,не изменяя массива? как написать модуль этих чисел массива?
0
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
24.12.2015, 15:30 4
Лучший ответ Сообщение было отмечено cyberton как решение

Решение

Цитата Сообщение от cyberton Посмотреть сообщение
Поэтому условию видно,что сумма элементов массива должна быть положительной
Почему Вы решили что положительной?
Массив:
-0.5 1 -0.5 1 -0.5
Сумма нечетных и abs(c(i))<1 равна -1.5

У Вас ошибка в коде скобка не в том месте, нужно

Matlab M
1
if abs(c(i))<1 & (mod(i,2)~=0)
1
0 / 0 / 0
Регистрация: 15.12.2015
Сообщений: 10
26.12.2015, 04:07  [ТС] 5
Помогите,пожалуйста, написать еще одну программу с массивами. Вот условие: Дан массив https://www.cyberforum.ru/cgi-bin/latex.cgi?A(m), m\leq 20. Вывести на печать сумму элементов массива,если она превосходит число 50,в противном случае вывести на печать исходный массив.

Добавлено через 1 час 3 минуты
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
f_id=fopen('mass.dat','rt');
A=Str2num(fgetl(f_id));
m=length(A);
disp('Введите n');
n=input('n=');
disp('массив А');
k=[A(1:n)];
fprintf('%6.2f',k);
fprintf('\n');
S=sum(A);
if S>50
    fprintf('\n сумма A(i): %6.2f',S);
else
    fprintf('\n massiv A:'), fprintf('%6.2f',A), fprintf('\n');
end
Помогите,пожалуйста, доработать программу.
0
Эксперт по математике/физике
3390 / 1913 / 571
Регистрация: 09.04.2015
Сообщений: 5,365
28.12.2015, 07:15 6
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
clc;
clear all;
f_id=fopen('mass.dat','rt');
A=Str2num(fgetl(f_id));
close(f_id);
 
m=length(A);
S=sum(A);
if S>50
    fprintf('\n сумма массива A: %6.2f\n',S);
else
    fprintf('\n massiv A:\n');
    for k=1:m
        fprintf('A(%d)=%6.2f\n',k,A(k));
    end
end
0
28.12.2015, 07:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.12.2015, 07:15
Помогаю со студенческими работами здесь

Метод хорд (ошибка в программе)
Здравствуйте. Помогите, пожалуйста, найти ошибку в программе: function mh clc; clear; m=2;...

Ошибка в программе! что это может быть?
Привет, сообщество!! У меня была задача, и я ее начал решать. Собственно вот условия и мой код: ...

Ошибка в программе Index exceeds matrix dimensions
Задача состоит в том, чтобы с помощью подпрограммы вычислить минимальный из элементов матрицы,...

Ошибка в программе расчета изотермы сварочного процесса
Здравствуйте. Подскажите пожалуйста, что не так в участке кода с 79 по 88 строки? Массив чисел yma...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru