1.
program n1;
var
k, s: integer;
a: array [1..8] of integer;
begin
for k := 1 to 8 do readln(a[k]); // с клавиатуры вводится массив из 8
s := 0; элементов
for k := 1 to 8 do
if a[k] < 0 then s := s + a[1]; // в цикле 4 раза к s прибавляют 1-ый элемент
writeln(s); // выводится s
end.
ответ: 4(т.к 1-ый элемент массива 1 и в нём 4 отрицательных элемента)
2.
Надо строку if a[k] < 0 then s := s + a[1];
Заменить на строку if a[k] < 0 then s := s + a[k];
Объяснение:
C#. Пример работы на изображении. (Входные данные отличаются)
using System;
using System.Collections.Generic;
using System.Linq;
namespace NSymbs
{
class Program
{
static void Main(string[] args)
{
string input;
input = Console.ReadLine();
int[] param = input.Split("\t ".ToCharArray()).Select(x => int.Parse(x)).ToArray();
input = Console.ReadLine();
int z = input.Length / param[1];
List<string> bufer = new List<string>();
for (int i = 0; i < z; ++i)
bufer.Add(input.Substring(i*param[1], param[1]));
Console.WriteLine(bufer.Distinct().Count());
}
}
}
switch (variableName) // в скобках переменная которую вы проверяете (string или integer)
{
case value1: // вместо value1 можно написать число или строку, с которым вы сравниваете variableName
{
// код в этих скобках будет выполняться в случае если переменная variableName будет равна значению case ( в данном случае value1 )
}
break; // break нужен для того чтобы не выполнялся код из следующих case.
case value2: {
// Если variableName == value2
}
break;
case value3: case value4: case value5:{
// если variableName будет равна одному из трех значений (value3,value4,value5)
}
default:{
// код будет выполнен если ни один из case не сработал. Т.е если переменная не была равна ни одному из определенных значений.
}
break;
}
Рекомендую смотреть код и комментарии в редакторе кода, потому что здесь перенос строки все портит (читать невозможно).