Помогите с алгоритмом.Написать программу сложения пяти переменных каждая из которых может...

0 голосов
60 просмотров

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


Информатика (1.6k баллов) | 60 просмотров
0

Это на каком языке писать? На Бейсике?

0

Ну и ладно.

Дано ответов: 2
0 голосов
Правильный ответ

{На самом деле они все строковые, но так как некоторые можно преобразовать в числовому значению, можно, я думаю, об этом забыть. Если мне покажут какой-то смежный тип (не char!), я буду крайне благодарен}
//Pascal ABC.NET 3.1 сборка 1256

Const
 n=5;

Var
 i,k:integer;
 r:real;
 rs:string;
 arsom:array[1..n] of string;
 se:set of char;
begin
se:=['0','1','2','3','4','5','6','7','8','9','.','-'];
k:=0;
for i:=1 to n do
 begin
  readln(arsom[i]);
  foreach var x in arsom[i] do
  if x in se then inc(k);
  if k=length(arsom[i]) then r+=strtofloat(arsom[i]) else rs+=arsom[i];
  k:=0;
 end;
writeln('Сумма чисел:',r);
write('Сумма строк:',rs);
end.

Пример ввода:
-1.1
Sample
2
 text
1.2
Пример вывода:
Сумма чисел:2.1
Сумма строк:Sample text

(38.6k баллов)
0

Попробуйте ввести: "-----" )

0

const
n = 5;

var
i, k: integer;
r, num: real;
rs: string;
arsom: array[1..n] of string;

begin
for i := 1 to n do
begin
readln(arsom[i]);
if TryStrToFloat(arsom[i], num) then r += num else rs += arsom[i];
end;
writeln('Сумма чисел:', r);
writeln('Сумма строк:', rs);
end.

0

С удовольствием покажу вам тип "не char": const n=10; b=True. Еще хотите? var x:=3.57;

0

Жара пришла и ко мне. Благодарю.

0

И все же мне показалось, что на VBA программа проще короче)) Видимо, из-за бестиповых по умолчанию переменных.

0 голосов

Текст на VBA (Microsoft Excel из состава Office 2003)

Sub aaa()
    a = Range("A1:A5")
    sn = 0: ss = ""
    For Each e In a
        If IsNumeric(e) Then
            sn = sn + e
        Else
            ss = ss + e
        End If
    Next
    Cells(7, 2) = sn
    Cells(8, 2) = ss
End Sub

Во вложении приведен вид листа рабочей книги после выполнения тестового решения.


image
(142k баллов)